分解质因数,从最小的开始不停除法,除到为1。或者,除到最后除不了,就输出自己。
有两个坑。第一个就是这个数本身是个质数。第二就是可能会超时,除到它的平方值即可。
还可以判断下除数是不是质数。因为会增加判断的次数,得不偿失。
while True: try: import math n = int(input()) i = 2 maxi = math.sqrt(n) while i <= maxi: if n % (i) == 0: n = n / i print(i, end=' ') else: i += 1 if n != 1: print(int(n), end=' ') except: break