我的python程序是在两个间隔之间找到素数,但我在输出中得到9,你能告诉我做错了什么吗?



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 = " ")

相关内容

最新更新