【发布时间】:2016-09-22 11:17:55
【问题描述】:
我对 Python 比较陌生。现在,我知道有很多更好的素因数分解程序,但我尝试在没有任何帮助的情况下编写代码并卡住了。代码如下:
def is_prime(n):
i =2
while i<n:
if n%i==0:
return False
i+=1
return True
def prime_factor(n):
b = n
factor=[]
i = 2
while i<b and is_prime(i):
while n%i ==0:
factor.append(i)
n/=i
continue
i+=1
return factor
print (prime_factor(28))
该代码适用于某些数字(27、24、12、18 等),但对于 28 则失败。我得到的输出为 [2,2] 的值 28。故障在哪里?
【问题讨论】:
标签: python-3.x prime-factoring