Python 使用math.sqrt查找范围内的素数
所以我必须找到从1到500的素数 我查看了各种博客和堆栈溢出问题 但每次我更改代码时,它都会返回 "1 2 3 4 5 6 7 8 9" 我找不到问题。请帮帮我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
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()