首先要知道质因数要>=2且小于自身的平方根,故只要遍历到平方根,并使用遍历到的数去除初始值,并且每求出一个公因数就打印并将初始值除以公因数后再继续迭代
此外存在质数的情况,即只有自身是质因数,故这种情况需要考虑从2开始的质数,故最终剩余的num值>=2需要打印
import math
num = int(input())
for x in range(2, int(math.sqrt(num))+1):
while num % x == 0:
print(x, end=' ')
num = num // x
if num >= 2:
print(num)