我是新來的python,我有這個代碼應該打印所有使用嵌套循環小於50的素數的一些問題。素數python嵌套循環
下面是代碼:
i = 2
while(i < 50):
j = 2
while(j <= (i/j)):
if not(i%j):
break
j = j + 1
if (j > i/j):
print(i, " is prime")
i = i + 1
它的輸出是:
2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
所以3後,J應該是2,我應該是4,那麼這不是一個素數,所以它回到while循環。
過程重新開始。我和我應該增加一個。所以j應該是3,我應該是5,5是素數,然後它又增加到6.
所以j應該仍然是3,我應該是6.但是(3 < =(6/3))< - 這是不正確的,所以如果語句和3是j大於2即i/j,這意味着6應該是質數。
但事實並非如此。你可以通過常識來判斷。我想知道我在這裏做錯了什麼。我在這裏錯過任何增量嗎?謝謝。
鑑於你的程序產生了正確的輸出,所以你不完全清楚爲什麼你認爲有什麼錯誤。請詳細說明。 – NPE
是的,我知道程序是正確的,輸出是正確的,但我想弄清楚我在想什麼錯*。 – James
哦,我明白了。你爲什麼不重新格式化敘述,以便:(1)每行有一個操作; (2)每行會顯示你認爲'i'和'j'的結果值是什麼。這會讓你的敘述更容易遵循(甚至可能幫助你找到問題)。 – NPE