import math num = int(input().split()[0]) z_list = [] for i in range(2,int(math.sqrt(num))+1): while num%i == 0: z_list.append(i) num = num//i if num != 1: z_list.append(num) for i in sorted(z_list): print(i,end=" ")
num = int(input()) fac = [] if num>=2: #如果输入为1,则没有质因子。所以只需要考虑输入大于等于2. i=2; while i<= int(num**0.5)+1: # 对于输入num,我们只需要搜索至m,使得m^2>=num。再往后仍无质因子说明num本身就是最后一个质因子。 if num%i == 0: fac.append(i) num = num/i # 找到一个质因子后即可减小num。 else: i+=1 fac.append(int(num)) for i in fac: print(i,end=" ")
if __name__ == '__main__': a = int(raw_input()) s= '' for i in xrange(2,a+1) : if i*i > a: if a == 1: break else: s=s+str(a)+' ' break while a%i == 0: if a==1: break a= a/i s=s+str(i)+' ' if s=='': print str(a)+' ' else: print s 原来用range()老是内存溢出,后面看了答案,发现xrange()可以省内存就过了,以后都用xrange吧