Python判断是否为水仙花数,写水仙花数用两个函数
时间: 2023-10-20 10:13:22 浏览: 43
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是判断一个数是否为水仙花数的Python函数:
```python
def is_narcissistic_number(num):
# 将数字转为字符串,然后转为列表,方便逐位取数字
num_list = list(str(num))
# 求出各位数字立方和
sum = 0
for i in num_list:
sum += int(i) ** 3
# 判断是否为水仙花数
if sum == num:
return True
else:
return False
```
接下来是生成水仙花数的Python函数:
```python
def get_narcissistic_numbers():
result = []
# 遍历所有三位数
for i in range(100, 1000):
# 判断是否为水仙花数
if is_narcissistic_number(i):
# 如果是,加入结果列表
result.append(i)
return result
```
调用`get_narcissistic_numbers()`函数即可获取所有的水仙花数。
相关问题
python用函数写水仙花数 一千以内的水仙花数
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。在Python中,我们可以使用函数来判断和输出一千以内的水仙花数。
以下是用函数写水仙花数的示例代码:
```python
def is_armstrong_number(num):
# 将数字转换为字符串,获取位数
num_str = str(num)
n = len(num_str)
# 计算每个位上的数字的n次幂之和
sum = 0
for digit in num_str:
sum += int(digit) ** n
# 判断是否为水仙花数
if sum == num:
return True
else:
return False
def find_armstrong_numbers():
armstrong_numbers = []
# 遍历一千以内的数字
for num in range(100, 1000):
if is_armstrong_number(num):
armstrong_numbers.append(num)
return armstrong_numbers
# 调用函数并输出结果
armstrong_numbers = find_armstrong_numbers()
print("一千以内的水仙花数:", armstrong_numbers)
```
运行以上代码,将输出一千以内的水仙花数:[153, 370, 371, 407]。
用python判断一个数是否为水仙花数
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如153就是一个水仙花数,因为1³+5³+3³=153。
以下是用Python实现判断一个数是否为水仙花数的代码:
```python
num = int(input("请输入一个三位数:"))
# 计算各位数字立方和
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
# 判断是否为水仙花数
if num == sum:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
```
首先,我们通过`input()`函数获取用户输入的一个三位数。然后,我们使用一个`while`循环计算这个三位数的各位数字立方和,并将其保存在`sum`变量中。
接着,我们使用`if`语句判断这个三位数是否为水仙花数。如果是,就打印出“是水仙花数”的提示信息;否则,就打印出“不是水仙花数”的提示信息。