列出1至10000当中所有的水仙花数!!!

2024-10-22 16:47:02
有3个网友回答
网友(1):

from functools import reduce
n = int(input("请输入范围数:"))
for a in range(10,n):
b = []
c = len(str(a))
for i in range(c):
d = str(a)
b.append(int(d[i])**c)
if reduce(lambda x,y: x + y, b) == a:
print(len(str(a)),a)
算出1亿内18个,严格地说,就4个




请输入几位水仙花数:3

3 153

消耗的时间是:3.48秒

3 370

消耗的时间是:3.48秒

3 371

消耗的时间是:3.48秒

3 407

消耗的时间是:3.48秒

请输入几位水仙花数:4

4 1634

消耗的时间是:2.70秒

4 8208

消耗的时间是:2.74秒

4 9474

消耗的时间是:2.75秒

程序运行第 1 次

请输入几位水仙花数:5

5 54748

消耗的时间是:4.44秒

5 92727

消耗的时间是:4.68秒

5 93084

消耗的时间是:4.68秒

程序运行第 2 次

请输入几位水仙花数:6

6 548834

消耗的时间是:8.54秒

程序运行第 3 次

请输入几位水仙花数:7

7 1741725

消耗的时间是:10.58秒

7 4210818

消耗的时间是:31.67秒

7 9800817

消耗的时间是:79.42秒

7 9926315

消耗的时间是:80.49秒

程序运行第 4 次

程序运行结束

网友(2):

program shuixian;
var
a,b,c:integer;
begin
for a:=1 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do
if a*a*a+b*b*b+c*c*c=a*100+b*10+c then
writeln(a*100+b*10+c,' ');
end.
这个是三位的,再加两层循环就行,自己改吧,

网友(3):

是不是每一数位上的数字的3次方之和等于这个数字的本身?