Python输出水仙数
时间: 2024-10-17 12:06:22 浏览: 26
水仙花数(又称 narcissistic number 或 pluperfect digital invariant),是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在Python中,你可以编写一个函数来检查一个整数是否为水仙花数。以下是一个简单的示例:
```python
def is_narcissistic_number(num):
# 将数字转换为字符串以便处理每一位
str_num = str(num)
# 确保是三位数
if len(str_num) != 3:
return False
# 计算每个位的立方并求和
sum_of_cubes = sum(int(char)**3 for char in str_num)
# 比较原始数字和计算得到的总和
return num == sum_of_cubes
# 使用函数检查并打印水仙花数
for i in range(100, 1000): # 只考虑三位数
if is_narcissistic_number(i):
print(f"{i} is a Narcissistic number.")
相关问题
python输出水仙花数
水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153 = 1^3 + 5^3 + 3^3,因此153就是一个水仙花数。以下是使用Python输出所有水仙花数的代码:
```python
for i in range(100, 1000):
num = i
sum = 0
while num > 0:
digit = num % 10
sum += digit ** 3
num //= 10
if i == sum:
print(i)
```
输出结果为:
```
153
370
371
407
```
Python输出水仙花数
水仙花数,又称阿姆斯特朗数,是指一个n位数(n≥3),它的每个位上的数字的 n 次幂之和等于它本身。例如:1^3 + 5^3 + 3^3 = 153。
以下是使用 Python 编写的程序,可以输出指定范围内的水仙花数:
```python
lower = int(input("请输入区间最小值: "))
upper = int(input("请输入区间最大值: "))
for num in range(lower, upper + 1):
# 按位分离数字
order = len(str(num))
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** order
temp //= 10
if num == sum:
print(num)
```
在程序中,输入区间的最小值和最大值后,使用 for 循环遍历该范围内的所有数字。对于每个数字,程序将其按位分离,计算各位数字的 n 次幂之和。如果该数字等于它的各位数字的 n 次幂之和,则输出该数字。
阅读全文
相关推荐












