水仙花数是指一个N位正整数(7≥N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 要求编写程序,计算所有N位水仙花数。
时间: 2023-10-23 19:18:35 浏览: 35
水仙花数是指一个 n 位数(n ≥ 3),它的每个位上的数字的 n 次幂之和等于它本身 例如,153 是一个水仙花数,因为 1^
可以使用循环来枚举所有的N位数,然后计算每个数的每一位的N次方之和,最后判断是否等于该数本身即可。
以下是一个Python程序示例:
```python
N = 3 # 水仙花数的位数
for num in range(10**(N-1), 10**N):
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** N
temp //= 10
if num == sum:
print(num)
```
输出结果为:
```
153
370
371
407
```
这就是所有3位水仙花数。将`N`的值改为其他数字即可计算其他位数的水仙花数。
阅读全文