以下用于素数分解的Python程序不起作用

时间:2016-09-22 11:17:56

标签: python-3.x prime-factoring

我对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 个答案:

答案 0 :(得分:0)

while条件中的问题:

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