[英]Don't understand this output
n = 1000
s = [2] + [i for i in range(3, n, 2)]
sq = int(s[-1] ** 0.5 + 1)
if sq % 2 == 0:
dex = s.index(sq-1)
else:
dex = s.index(sq)
for i in range(1, dex):
print(i, dex)
for j in s:
if j % s[i] == 0 and j != s[i]:
s.remove(j)
if j <= sq:
dex = dex - 1
#print(len(s))
這是一個計算n
以下素數的簡單腳本。 它有效,但似乎 go 幾輪太多了,我正在嘗試優化它。 無論如何,我發現了一些我不明白的output。 在這個腳本中, i
怎樣才能取一個大於dex
的值?
i
怎樣才能取一個大於dex
的值?
range
object 在for
循環過程開始之前創建一次,並使用dex
當時的值。 隨后, dex
下降。
range(1, dex)
返回從1
到dex - 1
的數字序列,因此如果在此之后更改dex
的值(如在循環內的情況),這不會影響之前已經生成的序列(循環將通過 go 的迭代次數)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.