可以使用递归,注意循环时的范围选择,一般选择(2,int(math.sqrt(num))+1),范围过大会导致运行超时。
import sys
import math
def primeFactor(num,data):
flag = 0
for i in range(2,int(math.sqrt(num))+1):
if num%i==0:
data=primeFactor(int(num//i),data)
flag=1
break
if flag==0:
data.append(num)
return data
if(i==num-1):
i=i+1
data.append(i)
return data
num = int(input())
#print(num)
data=[]
data = primeFactor(num,data)
data.sort()
order=[]
for i in range(0,len(data)):
order.append(str(data[i]))
print(' '.join(order))
import math
def primeFactor(num,data):
flag = 0
for i in range(2,int(math.sqrt(num))+1):
if num%i==0:
data=primeFactor(int(num//i),data)
flag=1
break
if flag==0:
data.append(num)
return data
if(i==num-1):
i=i+1
data.append(i)
return data
num = int(input())
#print(num)
data=[]
data = primeFactor(num,data)
data.sort()
order=[]
for i in range(0,len(data)):
order.append(str(data[i]))
print(' '.join(order))