问题 这是我想解决的问题。
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
我一直收到一个无效的语法错误,从底部到第四行,不像我的“+ =”运算符
答案 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())