水仙花數是指一個N位正整數(N≥3),它的每個位上的數字的N次冪之和等於它本身。 例如:153=1×1×1+5×5×5+3×3×3。
本題要求編寫程序,計算所有N位水仙花數。
輸入格式:
輸入在一行中給出一個正整數N(3≤N≤5)
輸出格式:
按遞增順序輸出所有N位水仙花數,每個數字占一行。
輸入樣例:
在這里給出一組輸入。例如:
3
輸出樣例:
在這里給出相應的輸出。例如:
153 370 371 407
第一版
1 # 水仙花數 2 # Author: cnRick 3 # Time : 2020-3-29 4 import math 5 digit = int(input()) 6 left,right= int(math.pow(10,digit-1)),int(math.pow(10,digit)) #左區間和右區間(左閉右開) 7 for num in range(left,right): 8 x = num 9 resultOfSum = 0 10 while x > 0: 11 resultOfSum = resultOfSum + pow(x%10,digit) 12 x = x //10 13 if resultOfSum == num: 14 print(num) 15
第二版
# 水仙花數 # Author: cnRick # Time : 2020-3-30 n = int(input()) for a in range(10**(n-1),10**n): if a == sum([int(i)**n for i in str(a)]): print(a)