我在編碼一個完整的初學者,所以我想我可以通過解決項目歐拉問題的更好,我被困在問題3項目歐拉Q3的Python很慢
「的13195的首要因素是5 ,7,13和29. 數字600851475143的最大素數是多少?「
我的代碼適用於較小的數字示例,但是當我嘗試運行較長的代碼時,如何使代碼更高效?
n=3 #factors
l=[]
flag = True
while(n<600851475143):
a=3
if (600851475143%n==0):
while(a<n):
if n%a!=0:
a+=2
else:
flag = False
break
if(flag):
l.append(n)
n+=2
print(l[len(l)-1])
如果像你說的,你是新來再編碼有提高你的技能不是解決上項目歐拉的問題,因爲許多這些挑戰的更好的方法涉及見解數學,優化或其他領域,至少在我看來。更好的是,您應該儘可能地尋找純粹的編程教程或練習。無論如何,祝你好運! –
查看大O特別是普通函數順序部分https://en.wikipedia.org/wiki/Big_O_notation – quantik
是的,你有兩個'while'循環嵌套。它隨輸入值的平方增長。看看你是否可以將你的想法扁平化爲一個while循環。 –