python判断水仙花数,打印水仙花数

痞子三分冷 提交于 2019-12-12 00:40:52

题目:水仙花数

#水仙花数是指一个n位数,N>=3,它的每个位上的数的N次幂之和等于它本身
#例子:13+53+3^3=153
#求100-999范围内的,水仙花数

python 代码获取100-999范围内的,水仙花数

for num in range(100,1000):
    S_digit = num % 10
    #Single digit
    H_digit = int(num / 100)
    #Hundreds digit
    Ten_digit = int((num - H_digit * 100) / 10)
    #Ten digit
    sum = S_digit ** 3 + Ten_digit ** 3 + H_digit ** 3
    if sum == num:
        print("%d是水仙花数" % num)

求所有位的水仙花数

while True:
    try:
        x=int(input('请输入最大取值范围(整数):'))
        break
    except:
        print("输入不对,重新输入")

for i in range(99,x+1):
    p = str(i)
    sum = 0
    for a in p:
        sum += int(a) ** len(p)
    if sum == i:
        print("%d是水仙花数" % i)

判断一个数是否为水仙花数

while True:
    try:
        x=int(input('请输入一个整数:'))
        break
    except:
        print("输入不对,重新输入")

    # 初始化变量 sum
sum = 0
# 每位数需要的指数
n = len(str(x))
# 检测
temp = x
while temp > 0:
    digit = temp % 10  # digit取得temp位数的最后位
    sum += digit ** n
    temp //= 10  # 逐渐将个、十、百的位数去掉

    # 输出结果
if x == sum:
    print(x, "是水仙花数")
else:
    print(x, "不是水仙花数")
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!