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