我是Python的新手和處理主要發電機。我想要使用的算法是Sieve of Atkin。for循環與2個迭代器和2個範圍
在這一刻,我試圖按照算法的僞代碼作爲我的練習。但是,我遇到了一個問題,我找不到任何關於它的參考。 (也許我不擅長搜索...)。在僞代碼中,for (x, y) in [1, √limit] × [1, √limit]:...
讓我感到困惑。我知道它是什麼意思,但不知道如何將這段代碼翻譯成Python代碼。
對不起,如果我的問題是不恰當的,並感謝您的幫助。 :)
下面是我的代碼的一部分。
itx = iter(range(1, int(limit**0.5)))
ity = iter(range(1, int(limit**0.5)))
for x, y in zip(itx, ity):
n = 4*(x**2)+(y**2)
if n <= limit and (n%12 == 1 or n%12 == 5):
sieve[n] = not sieve[n]
n = 3*(x**2)+(y**2)
if n <= limit and n%12 == 7:
sieve[n] = not sieve[n]
n = 3*(x**2)-(y**2)
if x > y and n <= limit and n%12 == 11:
sieve[n] = not sieve[n]
itx.next()
ity.next()
謝謝Martijn。這對我有用。感謝您的幫助。 :) – PCHC