复制
收藏
提问
简洁
(使用python)水仙花数是指一个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
5天前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
- 编写Python程序计算N位水仙花数。
程序设计
- 输入处理:首先接收用户输入的整数N,确保N在3到5之间。
- 循环遍历:使用嵌套循环遍历所有N位数,对每个数进行判断。
- 判断条件:对于每个数,将其拆分为各个位上的数字,并计算这些数字的N次幂之和,判断是否等于原数。
- 输出结果:如果满足条件,则输出该数。
代码实现
def is_narcissistic(num, N):
sum_of_powers = 0
original_num = num
while num > 0:
digit = num % 10
sum_of_powers += digit ** N
num //= 10
return sum_of_powers == original_num
def find_narcissistic_numbers(N):
for num in range(10**(N-1), 10**N):
if is_narcissistic(num, N):
print(num)
N = int(input())
find_narcissistic_numbers(N)
示例运行
- 输入:3
- 输出:
- 153
- 370
- 371
- 407
你觉得结果怎么样?