#类似短除法的思想: #短除法:从最小的质数除起,一直除到结果为质数为止。 #本解法: #定义输入为a,遍历变量为i #1、从最小的质数除起,能除则除,不能除就递增,找到之后相除,更新a,存储i #2、重复1,直到不满足i*i<a #3、检查一下最后剩下这个a是否为质数 a=int(input()) b=[] i=2 while(i*i<=a):#这里用这种方式降低时间复杂度,不然最后一个样例过不了 if a%i==0:#发现因数,这个因数必然是质数,因为如果i是合数,则在扫描到i之前就会扫描到他的质因数 b.append(i) a=a//i#更新a i=2#重置i continue else: i+=1 if a>1:#最后剩下的a,要么是1,要么是一个质数 b.append(a) for i in b: print(i,end=" ")
思路较为简单,代码注释就写得下,这里不赘述。