素数-Python
我是Python编程的新手,需要反馈。我写了一个程序,把素数打印到给定的整数。但产出与预期不同。你能给我一个关于这个代码的反馈吗。我做错了什么?为什么 非常感谢。素数-Python,python,python-3.x,Python,Python 3.x,我是Python编程的新手,需要反馈。我写了一个程序,把素数打印到给定的整数。但产出与预期不同。你能给我一个关于这个代码的反馈吗。我做错了什么?为什么 非常感谢。 user_integer = int(input("Please enter an integer : ")) for num in range(0, user_integer + 1): for i in range(2, num): if (num % i) == 0:
user_integer = int(input("Please enter an integer : "))
for num in range(0, user_integer + 1):
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
此代码:
user_integer = int(input("Please enter an integer : "))
for num in range(0, user_integer + 1):
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
将打印每个奇数,包括非素数。设num等于9,则9%2==0为False,否则执行body。您应该首先检查所有潜在的除数,然后打印
,如果:
user_integer = int(input("Please enter an integer : "))
for num in range(2, user_integer + 1):
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
输出(对于输入25
):
请注意,
else
的标识-这里它是for else not if else的一部分,因此当且仅当未发出break
时,才会执行打印。您的错误是由放置else语句引起的
本质上,每次数字不能被除时,else语句都会执行。例如,数字9:
9%2不等于0,因此它将打印9,即使9不是素数
你可以这样做
user_integer = int(input("Please enter an integer : "))
for num in range(0, user_integer + 1):
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
如果您是python新手,最好开始编写优化代码。您可以使用列表理解来实现类似[i for i in range(0,user,integer)]
欢迎:)这是一个很好的实践,可以说出输出是什么以及您期望的是什么这是否回答了您的问题?是的,谢谢你,先生:)你还应该看看更好的算法,比如有一个在
user_integer = int(input("Please enter an integer : "))
for num in range(0, user_integer + 1):
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)