水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1 3 +5 3 +3 3 。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。
时间: 2023-06-14 09:06:39 浏览: 219
水仙花数列
判断是否为水仙花数的函数可以这样写:
```python
def is_narcissistic_number(num):
n = len(str(num))
total = 0
for digit in str(num):
total += int(digit) ** n
return total == num
```
按从小到大打印出给定区间内所有水仙花数的函数可以这样写:
```python
def print_narcissistic_numbers(m, n):
for num in range(m, n+1):
if is_narcissistic_number(num):
print(num)
```
这两个函数可以放在同一个文件中。完整代码如下:
```python
def is_narcissistic_number(num):
n = len(str(num))
total = 0
for digit in str(num):
total += int(digit) ** n
return total == num
def print_narcissistic_numbers(m, n):
for num in range(m, n+1):
if is_narcissistic_number(num):
print(num)
print_narcissistic_numbers(100, 999)
```
调用 `print_narcissistic_numbers` 函数时,将区间的起始值和结束值传递给它即可。例如,上面的代码会打印出所有三位数中的水仙花数。
阅读全文