Python求1000以内所有的水仙花数
时间: 2024-10-09 20:09:58 浏览: 39
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在Python中,我们可以编写一个简单的程序来找出1000以内的所有水仙花数。以下是实现的步骤:
```python
def is_narcissistic_number(n):
# 将整数n转换为字符串,然后分割成单个数字
digits = [int(digit) for digit in str(n)]
# 计算每个数字的立方和
sum_of_cubes = sum([digit ** 3 for digit in digits])
# 如果立方和等于原数,返回True,否则False
return sum_of_cubes == n
# 遍历从1到999,检查每个数是否是水仙花数
narcissistic_numbers = [i for i in range(100, 1000) if is_narcissistic_number(i)]
print("1000以内的水仙花数有:", narcissistic_numbers)
相关问题
python求1000以内的水仙花数
以下是 Python 中实现水仙花数的代码:
```python
for num in range(1, 1001):
# 计算当前数字的位数
num_len = len(str(num))
# 初始化变量 sum 为 0
sum = 0
# 遍历每一位数字,并计算其 num_len 次方的和
for digit in str(num):
sum += int(digit) ** num_len
# 如果和等于当前数字,打印输出
if sum == num:
print(num)
```
输出结果为:
```
1
2
3
4
5
6
7
8
9
153
370
371
407
```
其中,1 到 1000 之间的水仙花数有 4 个,分别是 1、153、370 和 407。
用python求1000以内的水仙花数
以下是用 Python 求 1000 以内的水仙花数的代码:
```python
for num in range(1000):
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num)
```
输出结果为:
```
0
1
153
370
371
407
```
阅读全文