所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其中各位数字立方和等于该数本身。
时间: 2024-12-18 16:32:01 浏览: 8
要打印出所有的“水仙花数”,你可以编写一个简单的Python程序来遍历3位数范围内的每个数,并检查其各位数字立方和是否等于该数本身。以下是实现这一功能的方法:
```python
# 定义函数来检查一个数是否为水仙花数
def is_narcissus_number(num):
digits = [int(digit) for digit in str(num)] # 将数字转换为列表并提取各个位数
return sum([digit ** 3 for digit in digits]) == num
# 遍历从100到999之间的数
for i in range(100, 1000): # 范围内的起始和结束都是包括在内的
if is_narcissus_number(i):
print(i) # 如果找到水仙花数,就打印出来
```
这段代码首先定义了一个`is_narcissus_number`函数,它接收一个数作为输入,计算并比较其各位数字的立方和与原始数是否相等。接着,通过for循环逐个检查3位数范围内(100至999)的每一个数。
相关问题
用C语言输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其中各位数字立方和等于该数字本身。
以下是用C语言输出所有的水仙花数的代码:
#include <stdio.h>
int main()
{
int i, j, k, n;
for (n = 100; n < 1000; n++)
{
i = n / 100;
j = (n / 10) % 10;
k = n % 10;
if (i * i * i + j * j * j + k * k * k == n)
{
printf("%d ", n);
}
}
return 0;
}
用C语言2010输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其中各位数字立方和等于该数字本身。
以下是用C语言2010输出所有的“水仙花数”的代码:
#include <stdio.h>
int main()
{
int i, num, digit, sum;
for(i = 100; i <= 999; i++)
{
num = i;
sum = 0;
while(num > 0)
{
digit = num % 10;
sum += digit * digit * digit;
num /= 10;
}
if(i == sum)
{
printf("%d ", i);
}
}
return 0;
}
该代码会输出所有的“水仙花数”,即153、370、371、407。
阅读全文