为什么输入2得到的是2是素数呢?(2确实是)不应该2%2=0吗?
x=int(input("请输入一个数:"))for i in range(2,x):
if x % i==0:
print("x不是素数")
break
else:
print("x是素数")
x=int(input("请输入一个数:"))
for i in range(2,x+1):
if x % i==0:
print("x不是素数")
break
else:
print("x是素数") 本帖最后由 sfqxx 于 2023-2-13 17:40 编辑
应该把x变成x+1,不然不会执行for循环
x=int(input("请输入一个数:"))
for i in range(2,x+1):#改了这里
if x % i==0:
print("x不是素数")
break
else:
print("x是素数")
如果答案对您有帮助,请设置最佳答案! 因为当 x = 2 时,
for i in range(2 , 2):
......
else:
......
这个循环的终止条件是 i == 2,所以,就不会进入循环,直接执行属于 else 的语句了,这样,2 就被判定为素数了。 因为没有进入for循环里面 range(2,2)返回的结果是一个空列表,这样吧,设range的下限为n,上限为m,那么整个列表就是:
这里是没有m的,需要m+1才能:
x=int(input("请输入一个数:"))
for i in range(2,x):
if x % i==0:
print("x不是素数")
break
else:
print("x是素数")
缩进有些不对,帮你改了,希望能得到最佳答案
页:
[1]