python代码给出两个间隔之间的素数
start = int(input('enter starting point of interval:'))
end = int(input('enter ending point of interval:'))
for i in range(start,end+1):
if i>1:
for j in range(2,i+1):
if (i % j == 0):
break
else:
print(i, end = " ")
break
输出如果我把开始和结束作为2,10是3,5,7,9请告诉我做错了什么
在9的情况下,你要检查这个数字是否能被2整除,如果不能,然后你打印这个数字,不检查其他任何东西
你也循环到i+1
,这意味着你检查数字是否能被自己整除,它是…
试着改变那些:
start = int(input('enter starting point of interval:'))
end = int(input('enter ending point of interval:'))
for i in range(start,end+1):
if i>1:
for j in range(2,i):
if (i % j == 0):
break
else:
print(i, end = " ")
同样,不是在每个循环中检查if i>1
,而是改变循环条件,您可以循环直到平方根。
最终结果:
import math
start = int(input('enter starting point of interval:'))
end = int(input('enter ending point of interval:'))
for i in range(max(start, 2),end+1):
if i % 2 == 0 and i != 2: continue
if all((i%j!=0) for j in range(3,int(math.sqrt(i))+1, 2)):
print(i, end = " ")