Python 检查给定的数字是否为素数,若为素数,则查找该数字的阶乘,若为非素数,则打印该数字的数字和
数字之和运行良好,但为什么阶乘部分不起作用?我在if-else或break中是否犯了错误Python 检查给定的数字是否为素数,若为素数,则查找该数字的阶乘,若为非素数,则打印该数字的数字和,python,Python,数字之和运行良好,但为什么阶乘部分不起作用?我在if-else或break中是否犯了错误 NUM = int (input ("Enter a number ")) if NUM > 1: for x in range (2, NUM): if (NUM % x) == 0: temp = NUM sod = 0 while temp > 0:
NUM = int (input ("Enter a number "))
if NUM > 1:
for x in range (2, NUM):
if (NUM % x) == 0:
temp = NUM
sod = 0
while temp > 0:
remainder = temp % 10
sod += remainder
temp = temp//10
print (sod)
break
else:
factorial = 1
for I in range (1, NUM + 1,1):
factorial *= I
print (factorial)
else:
temp = NUM
sod = 0
while temp > 0:
remainder = temp % 10
sod += remainder
temp = temp//10
print (sod)
下面的代码检查数字是素数还是奇数。如果它的素数是这个数的阶乘,如果它的奇数是这个数的范围的和。希望这就是你想要的
NUM = int(input("Enter number here"))
if NUM > 0:
if NUM % 2 == 0:
factorial = 1
for i in range(1, NUM +1):
factorial = factorial*i
print(factorial)
else:
sum_of_NUM = 0
for x in range(NUM+1):
sum_of_NUM += x
print(sum_of_NUM)
else:
print("something you want to put")
第12行的
break
语句在if
语句之外,因此无论NUM
的值是多少,for循环在第一次通过后都将中断。你确定你不是想把break
缩进另外四个空格吗?你能提供准确的输出,以及准确的预期输出吗?你也可以使用标准库中的math.factorial
函数,不需要自己编写对不起,我仍然不熟悉使用堆栈溢出,这是我发布的第一个问题,有什么方法可以显示输出吗?或者我只是把它打出来是的,只是编辑问题然后复制粘贴它。张贴完整的输出,但对您认为不正确的特定行进行注释。您的意思可能是要在if
中缩进break
。当你编写代码时,中断总是在循环的第一时间发生。我喜欢你编写代码的愿望,但现在我们想帮助Jackson在他自己的代码中找到问题。他明白这一点很重要。下次我会考虑的。谢谢你的提醒。感谢你的代码,我唯一犯的错误就是断点的缩进问题@themadpsychologist@LacksonMunthali是的,我会更加小心压痕。谢谢你的帮助谢谢你的帮助!这真的是一个小错误:(@JacksonTai不是问题。如果你的问题解决了,你要么将正确答案标记为已收到(如果你认为你的问题将来会帮助他人),要么删除该问题(如果你认为它不会帮助他人).那样的话,人们就不会一直检查它来看看他们能帮上什么忙了。好的,谢谢你让我知道@themadpsychologist
NUM = int(input("Enter number here"))
if NUM > 0:
if NUM % 2 == 0:
factorial = 1
for i in range(1, NUM +1):
factorial = factorial*i
print(factorial)
else:
sum_of_NUM = 0
for x in range(NUM+1):
sum_of_NUM += x
print(sum_of_NUM)
else:
print("something you want to put")