Python编写函数,从键盘输入一个整数,判断其是否为完全数或者水仙花数。

好的,这里是一个 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, "是一个水仙花数")
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值