利用python写出100-999的水仙花数
时间: 2024-09-25 12:09:08 浏览: 48
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。以下是Python代码片段,用于找出100到999之间的所有水仙花数:
```python
def find_water_lily_numbers(start, end):
water_lilies = []
for num in range(start, end+1):
if len(str(num)) != 3: continue # 只考虑三位数
digits = [int(digit) for digit in str(num)] # 获取每一位数字
if sum([digit**3 for digit in digits]) == num: # 检查是否满足水仙花条件
water_lilies.append(num)
return water_lilies
water_lily_numbers_in_range = find_water_lily_numbers(100, 999)
print("100到999之间的水仙花数有:", water_lily_numbers_in_range)
相关问题
利用python语言写出水仙花数
水仙花数(Narcissistic number)也叫自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。
例如,153是一个水仙花数,因为1^3+5^3+3^3=153。
以下是用Python语言实现水仙花数的代码:
```python
for num in range(100, 1000):
# 计算num的每个位上的数字
digit1 = num // 100 # 百位数
digit2 = (num // 10) % 10 # 十位数
digit3 = num % 10 # 个位数
# 判断是否为水仙花数
if num == digit1**3 + digit2**3 + digit3**3:
print(num)
```
输出结果:
```
153
370
371
407
```
帮我写一个水仙花数的程序
### 回答1:
当然可以帮您写一个水仙花数的程序,具体如下:
#include <stdio.h>
#include <math.h>
int main()
{
int n, sum = 0, m, count = 0;
printf("请输入一个三位数: ");
scanf("%d",&n);
m = n;
while(m != 0)
{
count++;
m /= 10;
}
m = n;
while(m != 0)
{
sum += pow(m % 10, count);
m /= 10;
}
if(sum == n)
printf("%d 是一个水仙花数", n);
else
printf("%d 不是一个水仙花数", n);
return 0;
}
输出结果如下:
请输入一个三位数: 153
153 是一个水仙花数
### 回答2:
水仙花数是指一个三位数,它的各位数字的立方和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是一个简单的程序来判断三位数中的水仙花数:
```python
def find_armstrong_numbers():
armstrong_numbers = []
for num in range(100, 1000):
# 個位數字
digit1 = num % 10
# 十位數字
digit2 = (num // 10) % 10
# 百位數字
digit3 = num // 100
# 判斷是否為水仙花數
if num == (digit1 ** 3 + digit2 ** 3 + digit3 ** 3):
armstrong_numbers.append(num)
return armstrong_numbers
# 呼叫函數,印出結果
result = find_armstrong_numbers()
print("水仙花数:", result)
```
运行以上代码,将会输出结果为:
水仙花数: [153, 370, 371, 407]
以上是一个简单的水仙花数判断程序,它利用了循环遍历三位数,并通过取模和整除运算分解数字,再判断立方和是否等于原数字来确定是否为水仙花数。程序将所有的水仙花数存储在一个列表中,并最终打印出来。
阅读全文