簡體   English   中英

在Python中生成的素數列表中有4個

[英]There is a 4 in my prime number list generated in Python

這是我的代碼。

#Prime numbers between 0-100
for i in range(2,100):
    flg=0
    for j in range(2,int(i/2)):
        if i%j==0:
            flg=1
            break
    if flg!=1:
        print(i)

輸出是

2
3
4 <-
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

我不知道為什么有這個4.請原諒我,如果我犯了一些noobish錯誤,因為我似乎無法弄明白。

原因是范圍不包括在內,即

>>> range(2,2)
[]

所以當你訪問4時,你不會檢查除數。 例如更改為range(2,int(i/2)+1)

要加快計算速度,可以使用math.sqrt而不是/ 2操作,例如:

import math

接着

for j in range(2, int(math.sqrt(i)+1)):

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM