Python3 打印一定范围内的水仙花数

本文介绍了如何使用Python3编程语言来找出指定范围内的水仙花数。水仙花数是一种特殊的数字,其特征在于该数字等于其各位数字的n次幂之和,其中n为该数字的位数。文章提供了两种实现方式,通过迭代和计算来找出100到给定最大值之间的所有水仙花数。

Python3打印一定范围内的水仙花数


题目
1打印一定范围内的水仙花数:水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。(10分)
题目内容:

水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。

例如:153是一个“水仙花数”,因为 153 是个 3位数,由题目可知计算规则:

1**3+5**3+3**3==153

输入一个正整数max,输出100到max之间的所有水仙花数(包括max)。

输入格式:

共一行,为一个正整数。

输出格式:

若干行,从小到大输出水仙花数,一行为一个数。

输入样例:

2500

输出样例:

153

370

371

407

1634

时间限制:1000ms内存限制:32000kb

#水仙花数
#实例1
x = input()
for s in range(100,int(x)+1):
    y = 0
    for n in range(len(str(s))):
        y += int(str(s)[n])**len(str(s))
    if s == y:
        print(s);
#实例2
max1 = int(input())
for flower in range(100, max1 + 1):
    tally = 0
    Length = 0
    a = flower
# 判断整数位数
    while a != 0:
        Length += 1
        a = a // 10
# 判断水仙花数
    for y in range(Length):
        tally += int(str(flower)[y])**Length
    if tally == flower:
        print(flower)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值