输出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身
时间: 2023-10-27 17:04:09 浏览: 77
。Python代码如下:
```python
for i in range(100, 1000):
a = i // 100
b = (i // 10) % 10
c = i % 10
if i == a**3 + b**3 + c**3:
print(i)
```
运行结果:
```
153
370
371
407
```
相关问题
输出所有“水仙花数”。所谓“水仙花数”是指一个三位数 其各位数字立方和等于该数本身
"水仙花数"是指一个三位正整数,其百位、十位和个位数字分别立方后相加得到的结果正好等于原数本身。例如,153是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
寻找所有的水仙花数的一种常见算法是遍历从100到999之间的每个数,计算它的各个位的立方和,如果和等于原数,则这个数就是水仙花数。以下是Python的一个简单示例:
```python
def is_lychrel(num):
digits = [int(digit) for digit in str(num)]
sum_of_cubes = sum(i ** 3 for i in digits)
if num == sum_of_cubes:
return False
for _ in range(100): #最多尝试100次翻转,超过则认为不是水仙花数
digits.sort() #将数字降序排列
num = int(''.join(str(digit) for digit in digits))
if num == sum_of_cubes:
return True
else:
sum_of_cubes = sum(i ** 3 for i in digits)
return False
# 找出所有的水仙花数
for num in range(100, 1000):
if is_lychrel(num):
print(num)
```
编写程序输出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身
好的,这个问题属于数学问题。以下是程序代码:
#include <stdio.h>
int main() {
int i, j, k, n;
for(n = 100; n < 1000; n++) {
i = n / 100; //百位数
j = n % 100 / 10; //十位数
k = n % 10; //个位数
if (n == i*i*i + j*j*j + k*k*k) {
printf("%d\n", n);
}
}
return 0;
}
程序输出的结果为:
153
370
371
407
这就是所有三位水仙花数的值。
阅读全文