大家好,我有一個問題,我為projecteuler寫了這段代碼來尋找一個特定的素數,但它以無限回圈結束。 我查了一下,發現有很多替代方案,但我想知道為什么這段代碼就是不作業。我是編程新手,所以如果你有任何建議來改進我的代碼,我將非常感激。
import math
x = 1 #number that is getting checked[/span].
y = 0 #表示找到多少個質數。
a = 0 #最新的質數。
while y < 6:
for i in range (2, int(math.sqrt(x)))。
if (x % i ) == 0:
x = x 1: x = x 1.
break: x = x 1.
else:
a = x
x = x 1: a = x
y = y 1: a = x = x 1.
break
print (a)
uj5u.com熱心網友回復:
你把x = 1,然后從2開始在range上回圈:所以for永遠不會被執行,而while無限期地回圈。你需要從x = 2開始,或者處理x = 1的特殊情況。
編輯
這段代碼對x至少有9個作業:for回圈永遠不會被執行,直到int(math.sqrt(x))至少是3
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/331089.html
標籤:
