素因计划

时间:2014-09-19 20:25:32

标签: python prime-factoring

问题 这是我想解决的问题。

  

13195的主要因素是5,7,13,29。600851475143中最大的素数因素是什么?

def prime_calc():
    num = raw_input("What is the number you want the primes for?")
    prim_num = []
    x = 2
    while num/x > 1:
        new_num = num / x
        if num % x == 0:
            return prim_num.append(x)
        elif num % x != 0:
            new_num = num/x += 1
            return prim_num.append(x)
        else:
            break

我一直收到一个无效的语法错误,从底部到第四行,不像我的“+ =”运算符

2 个答案:

答案 0 :(得分:1)

这一行:

new_num = num/x += 1

应分为两行:

x += 1
new_num = num/x

python中的语句x += 1不会返回任何内容,因此您不能将其用作表达式的一部分。

同样,两个实例:

return prim_num.append(x)

同样不起作用,因为语句:prime_num.append(x)不会返回任何内容。 你需要将其分解为:

prime_num.append(x)
return prime_num

答案 1 :(得分:0)

num=int(input("Please enter number to calculate prime factor"))    
k=0    
item=[]    
if(num%2==0):    
  prime=2    
  item.insert(k,prime)    
  k=k+1    

j=3    
flag=int(num/2)    
while(j<flag and num>2):    
  if num%j==0:    
    prime=j
    item.insert(k,prime)
    k=k+1
    num=num/j
    j=j+2
  else:
    j=j+2

if k==0:    
  print("sorry no prime factor for this number")    
else:    
  print("Please find the largest prime factor below")
  print(item.pop())