分解质因数,从最小的开始不停除法,除到为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
京公网安备 11010502036488号