编写一个程序,找出并打印出从100到1000范围内的所有水仙花数,即满足每个位数(百位、十位和个位)立方和等于该数本身的整数。
时间: 2024-12-24 20:17:39 浏览: 4
编写一个Python程序来寻找100到1000范围内的水仙花数(也称为三位数完全立方数),可以这样做:
```python
def find_water_lily_numbers(start, end):
water_lilies = []
for num in range(start, end + 1):
# 将数字转换为字符串以便于处理每一位
str_num = str(num)
# 检查是否为三位数
if len(str_num) != 3:
continue
# 计算每一位的立方和
cube_sum = int(str_num[0]) ** 3 + int(str_num[1]) ** 3 + int(str_num[2]) ** 3
# 如果和等于原数,将其添加到列表中
if cube_sum == num:
water_lilies.append(num)
return water_lilies
# 找出100到1000之间的水仙花数
water_lily_numbers = find_water_lily_numbers(100, 1000)
print("100到1000之间的水仙花数有:", water_lily_numbers)
相关问题
Java中打印出100到1000范围内的所有水仙花数
水仙花数是指一个n位数,其各位数字的n次方之和等于该数本身。对于100到1000范围内的水仙花数,我们通常指的是3位数的水仙花数,因为100到1000是3位数的范围。在Java中,我们可以通过编写一个简单的程序来找出这个范围内的所有水仙花数。
下面是一个示例代码,用于打印出100到1000范围内的所有水仙花数:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int hundred = i / 100; // 百位数
int ten = (i % 100) / 10; // 十位数
int one = i % 10; // 个位数
if (Math.pow(hundred, 3) + Math.pow(ten, 3) + Math.pow(one, 3) == i) {
System.out.println(i);
}
}
}
}
```
这段代码通过循环检查每个数字的百位、十位和个位数,然后计算它们的立方和,如果立方和等于原始数字,则将该数字打印出来。
编写一个程序,显示所有的水仙花数 水仙花数是一个三位数,其百位、十位、个位的数字的立方之和为其数本身
要编写一个Python程序来找出所有的水仙花数,你可以采用以下步骤:
```python
def find_water_lily_numbers(start, end):
water_lilies = []
for num in range(start, end+1): # 从100到999范围内的数
digits = [int(digit) for digit in str(num)] # 将数字转换为列表并提取每个位数
if len(digits) != 3: # 确保是三位数
continue
sum_of_cubes = sum([digit**3 for digit in digits]) # 计算每一位的立方和
if sum_of_cubes == num: # 判断是否满足条件
water_lilies.append(num)
return water_lilies
# 范围设置为最小的水仙花数(100)到最大的三位数(999)
water_lily_numbers = find_water_lily_numbers(100, 999)
print(f"水仙花数有:{water_lily_numbers}")
```
运行这个程序,它会找到并打印出所有的水仙花数,例如153, 370, 371, 407 等。
阅读全文