素因子程序
问题描述:
问题 这是我正在尝试解决的问题。素因子程序
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
我不断收到从下往上第四行,这并不像我的“+ =”操作符启动一个无效的语法错误
答
这条线:
new_num = num/x += 1
应分成两行:
x += 1
new_num = num/x
该声明012 python中的不返回任何东西,所以你不能将它用作表达式的一部分。
同样的两个实例:
return prim_num.append(x)
也是不行的,因为声明:prime_num.append(x)
不返回任何东西。 你需要打入这个:
prime_num.append(x)
return prime_num
答
计划寻找大素因子
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 no")
else:
print("Please find the largest prime factor below")
print(item.pop())
答
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())
'NUM/X + = 1'这不就是两个变量返回原始的?在这里的情景中,+ +会对它起作用吗?为什么不只是'num/x + 1'? – Compass 2014-09-19 20:30:18
你的代码有多个缺陷。首先,你是用'int'类型来划分'str'类型。 – 2014-09-19 20:41:56