【问题标题】:The following Python program for prime factorization does not work以下用于素数分解的 Python 程序不起作用
【发布时间】: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


    【解决方案1】:

    while 条件中的问题:

    while i<b :
        while is_prime(i) and n%i ==0:
            factor.append(i)
            n/=i
            continue
        i+=1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多