(
"
寻找水仙花数
"
)
#
题目:打印出所有的
"
水仙花数
"
,所谓
"
水仙花数
"
是指一个三位数,其各位数字立方和等于该数本
身。
#
例如:
153
是一个
"
水仙花数
"
,因为
153=1^3
+
5^3
+
3^3
。
#
程序分析:利用
for
循环控制
100-999
个数,每个数分解出个位,十位,百位。
#
其实两位数以上的数都可能存在梅花数。
doIt
= True
while
doIt
:
w
=
int
(
input
(
"
你想在几位数中寻找水仙花数?
"
))
s
=
[]
sum
=
0
total
=
0
for
n
in
range
(
10
**
(
w
-
1
),
10
**
w
)
:
for
i
in
range
(
1
,
w
+
1
)
:
p
=
int
(
n
/
(
10
**
(
i
-
1
))
%
10
)
sum
+=
p
**
w
if
sum
==
n
:
(
"
水仙花数:
"
,
n
)
total
+=
1
sum
=
0
(
"
在
%d
位数中共发现了
%d
个水仙花数。
"
%
(
w
,
total
))
if
input
(
"
还要继续寻找吗?(
y/n
)
:"
)
==
"n"
:
doIt
= False