【题目描述】
给定一个正整数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