接上文,开方的思路:如果一个数不是素数是合数, 那么一定可以由两个自然数相乘得到, 其中一个大于或等于它的平方根,一个小于或等于它的平方根。并且成对出现。


num = int(input())

def getprime(n):
    i = 2
    while i * i <= n:
        while n % i == 0:#比如输入49,内循环是会执行两次!
            n = n // i
            print(i, end=" ")
        i = i + 1
    if n - 1: #判断输入是不是质数,质数只有1和自身的乘积等于这个数
        print(n, end=" ")
getprime(num)