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

my python program is to find prime numbers between two intervals but i am getting 9 in the output can you please tell what mistake i am doing

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