题目是求出区间【m,n】中的所有素数,并以空格间隔输入m,n的值,以空格间隔输出区间内的素数
而我这样编程
m,n=map(int,input().split())
for i in range(m,n+1):
for j in range(2,i):
if i%j==0:
break
else:
print(i,end=" ")
break
当输入10 20时输出为11 13 15 17 19
而正确结果应该为11 13 17 19。我的内容哪里有误呢?
希望有好心人帮我解答一下,思考一晚上了都(ฅ•﹏•ฅ)
m,n=map(int,input(">>>").split())
for i in range(m,n+1):
flag = False
for j in range(2,i ):
if i % j ==0:
flag = True
break
if not flag:
print(i,end=" ")
# 你的代码中,判断素数的逻辑有问题
# 当i=15时,j=2,直接就走else分支了
# 你的if else逻辑 基本都执行了一次,相当于是奇数就输出了。(并没有实现j从2到i都进行判断)
# 判断素数
def is_prime(num):
flag = True
if num > 1:
for i in range(2, math.floor(math.sqrt(num)) + 1):
if (num % i) == 0:
flag = False
break
return flag
m = int(input("请输入m:"))
n = int(input("请输入n:"))
for i in (m, n + 1):
if is_prime(i):
print(i)