2013-10-15 28 views
-4
from math import sqrt 

for num in range(2,100) : 
    flag = True 
    for sub in range(2,int(sqrt(num))+1) : 
     if num % sub ==0 : 
      flag = False 
      break 
     print num , 

This is the output, repeated numbers這個素數輸出有什麼問題?

我是一個「品牌」新手在Python中,我嘗試代碼輸出從2到100的素數,我 遇到了一些問題,請大家幫我^^

+0

這是您的完整代碼? –

+3

圖像可用於說明非文本內容。由於您的代碼和輸出是全部文本,請在該問題中添加文本。 – kojiro

+0

將'flag'重命名爲'isprime',然後**在某處使用**;你想要的可能是'if isprime:print num''在與'for ... ...'相同的級別縮進。 –

回答

4
for sub in range(2,int(sqrt(num))+1) : 
    if num % sub ==0 : 
     flag = False 
     break 
    print num , # <<-- this is inside the for loop and will be printed every iteration 
+0

不確定'標誌=需要FALSE' ... – SethMMorton

+0

1從數學進口SQRT 3爲在範圍NUM(2100): 4 isprime =真 5爲在範圍(分2,INT(SQRT(NUM ))+ 1): 6 if num%sub == 0: 7 isprime = False 8 break 9 if ifprime: 10 print num, – Fuziang