题目:水仙花数
#水仙花数是指一个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 digitH_digit = int(num / 100)#Hundreds digitTen_digit = int((num - H_digit * 100) / 10)#Ten digitsum = S_digit ** 3 + Ten_digit ** 3 + H_digit ** 3if sum == num:print("%d是水仙花数" % num)
求所有位的水仙花数
while True:try:x=int(input('请输入最大取值范围(整数):'))breakexcept:print("输入不对,重新输入")for i in range(99,x+1):p = str(i)sum = 0for a in p:sum += int(a) ** len(p)if sum == i:print("%d是水仙花数" % i)
判断一个数是否为水仙花数
while True:try:x=int(input('请输入一个整数:'))breakexcept:print("输入不对,重新输入")# 初始化变量 sum
sum = 0
# 每位数需要的指数
n = len(str(x))
# 检测
temp = x
while temp > 0:digit = temp % 10 # digit取得temp位数的最后位sum += digit ** ntemp //= 10 # 逐渐将个、十、百的位数去掉# 输出结果
if x == sum:print(x, "是水仙花数")
else:print(x, "不是水仙花数")