编写一个python程序给定一个正整数n,判断n是否是一个阶乘和数

【题目描述】

给定一个正整数n,需要求其各位数字的阶乘之和是否等于n,即判断n是否是一个阶乘和数

【输入形式】

从控制台输入一个正整数。

【输出形式】

先输出输入的正整数和一个逗号,并从最高位开始输出组成该正整数的各位数字的阶乘相加形式,

然后输出等号“=”和各位数字阶乘之和,最后在下一行输出字符串Yes表示该正整数是阶乘和数,

否则输出字符串No表示该正整数不是阶乘和数,输出Yes或No后输出回车换行符。

所有输出字符之间都没有空格分隔。

案例代码

# 输入正整数
num = int(input())

# 求各位数字的阶乘之和
def factorial_sum(num):
    total_sum = 0
    for digit in str(num):
        factorial = 1
        for i in range(1, int(digit) + 1):
            factorial *= i
        total_sum += factorial
    return total_sum

# 输出结果
print(f"{num},", end="")
for digit in str(num):
    print(f"{digit}!", end="+")
print(f"={factorial_sum(num)}")
if num == factorial_sum(num):
    print("Yes")
else:
    print("No")
© 版权声明
THE END
喜欢就支持一下吧
点赞14赞赏 分享