第四章 7-16 水仙花数

# 最简单的 且运行正确

n=int(input())

for num in range(10**(n-1),10**(n)):
    if num==sum([int(i)**n for i in str(num)]):
        print(num)

## 这一段代码提交后显示运行超时
## 还有个问题:这段代码输出的是多个水仙花数,要比题给示例还多,就是,当时没看清题,要求输出的是N位,这段代码能输出不止N位数的水仙花数

n=input()
max_n = 1
for i in range(int(n)):
    max_n = max_n*10

def isNarcissistic(N):
    li=list(str(N))
    s=0
    for i,j in enumerate(li):
        s_k = 1
        for k in range(len(li)):
            s_k = s_k* int(j)
        s +=s_k
    if s==N:
        return True
    else:
        return False

nar=[]
for num in range(100,max_n):
    if isNarcissistic(num):
        nar.append(num)

for i in nar:
    print(i)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值