以下用于素数分解的 Python 程序不起作用
Posted
技术标签:
【中文标题】以下用于素数分解的 Python 程序不起作用【英文标题】:The following Python program for prime factorization does not work 【发布时间】: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。故障在哪里?
【问题讨论】:
【参考方案1】:while
条件中的问题:
while i<b :
while is_prime(i) and n%i ==0:
factor.append(i)
n/=i
continue
i+=1
【讨论】:
以上是关于以下用于素数分解的 Python 程序不起作用的主要内容,如果未能解决你的问题,请参考以下文章