Python 使用math.sqrt查找范围内的素数

Python 使用math.sqrt查找范围内的素数,python,Python,所以我必须找到从1到500的素数 我查看了各种博客和堆栈溢出问题 但每次我更改代码时,它都会返回 "1 2 3 4 5 6 7 8 9" 我找不到问题。请帮帮我 primary = True import math for n in range(2,501): sqrn=math.sqrt(n) for div in range (2, int(sqrn)): if n%div == 0: primary = False

所以我必须找到从1到500的素数 我查看了各种博客和堆栈溢出问题 但每次我更改代码时,它都会返回 "1 2 3 4 5 6 7 8 9" 我找不到问题。请帮帮我

primary = True
import math
for n in range(2,501):
    sqrn=math.sqrt(n)
    for div in range (2, int(sqrn)):
        if n%div == 0:
            primary = False
            break
    if primary:
        print(n, end=" ")
print()

您需要将1添加到
sqrt(n)
,因为
范围的上限是独占的

此外,在每个内部循环之前,您需要将
primary
重置为
True
,否则您将只能找到一个primary

import math

for n in range(2, 501):
    primary = True
    sqrn = math.sqrt(n)
    for div in range (2, int(sqrn) + 1):
        if n % div == 0:
            primary = False
            break
    if primary:
        print(n, end=" ")

print()