2016-07-27 159 views
0

此程序用於列出1到1000之間的所有素數,但我的老師希望我在結果中包含1。Python - 列出從1到1000的素數,包括1

我試圖將其改爲if num >= 1:for i in range(1,num),但是當我運行它時,唯一的結果是1 is a prime number!。謝謝!

for num in range(1,1001): 
    if num > 1: 
     for i in range(2,num): 
      if (num % i) == 0: 
       break 
     else: 
      print(num,"is a prime number!") 
+3

第一件事是,'如果num> = 1:'後,你有'如果(NUM%I)== 0休息「,這就是爲什麼它停在那裏。 –

+1

奇怪。當我運行這個,我得到預期的輸出。 – intboolstring

+1

我也獲得了預期的結果。 – shiva

回答

1

你不應該寫for i in range(1, num):,因爲(any number) % 1 == 0if num >= 1:也可以刪除,因爲它總是如此。

試試下面的代碼:

for num in range(1, 1001): 
    for i in range(2, num): 
     if num % i == 0: 
      break 
    else: 
     print num, 'is a prime number' 

記住,從技術上來說,1是不是素數。

+0

最好刪除'if num> = 1:'。這總是如此。 –

+0

@StefanPochmann好的。編輯 –

0

留下你的代碼是以上主要用於循環附加:

print("1 is a prime number")