Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查给定的数字是否为素数,若为素数,则查找该数字的阶乘,若为非素数,则打印该数字的数字和_Python - Fatal编程技术网

Python 检查给定的数字是否为素数,若为素数,则查找该数字的阶乘,若为非素数,则打印该数字的数字和

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:

数字之和运行良好,但为什么阶乘部分不起作用?我在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:
                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")