题目:水仙花数
#水仙花数是指一个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, "不是水仙花数")
来源:CSDN
作者:金鞍少年
链接:https://blog.csdn.net/weixin_42444693/article/details/103484443