好的,这里是一个 Python 程序来判断输入的整数是否是完全数或者水仙花数:
def is_perfect_number(n):
# 完全数是一种特殊的数字,它的所有真因子(即除了它本身以外的因子)的和恰好等于它本身。
# 例如,6 是一个完全数,因为它的因子有 1, 2, 3,它们的和为 6。
# 因此,我们可以遍历 1 到 n-1 之间的所有数,并统计它们是 n 的因子的数字的和。
# 如果和等于 n,则 n 是一个完全数。
sum = 0
for i in range(1, n):
if n % i == 0:
sum += i
return sum == n
def is_narcissistic_number(n):
# 水仙花数是一种特殊的数字,它各位数字的立方和等于它本身。
# 例如,153 是一个水仙花数,因为 153 = 1^3 + 5^3 + 3^3。
# 因此,我们可以把 n 转换为字符串,然后遍历字符串中的每一位数字,并计算它们的立方和。
# 如果立方和等于 n,则 n 是一个水仙花数。
sum = 0
for c in str(n):
sum += int(c) ** 3
return sum == n
# 从键盘输入一个整数
n = int(input("请输入一个整数: "))
if is_perfect_number(n):
print(n, "是一个完全数")
elif is_narcissistic_number(n):
print(n, "是一个水仙花数")