2017-10-14 63 views

回答

1

您的算法中存在一個邏輯問題,例如

例如,

x = 55,那麼對於第一個循環,n = 2。由於55%2!= 0,您將進入Prime分支並中斷for循環。所以你得到Prime的結果,這是錯誤的。

最簡單的修改是:

x = 55 

n = 2 

while n < x: 
    print(n) 
    if x % n == 0: 
     print ('Not a prime') 
     break 
    n = n + 1 

if n == x: 
    print('Prime') 

print(n)可以幫你調試。而實際上,驗證因子高達sqrt(x)就足夠了。