python 水仙花数
时间: 2023-07-11 13:44:18 浏览: 78
好的,Python 水仙花数的代码如下:
```python
for num in range(100, 1000):
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num)
```
运行结果是:
```
153
370
371
407
```
以上就是 Python 实现水仙花数的代码。
相关问题
python水仙花数
Python实现水仙花数的代码如下:
```python
for num in range(100, 1000):
# 将数字转换为字符串,然后取出各个位上的数字
i = int(str(num)[0])
j = int(str(num)[1])
k = int(str(num)[2])
# 判断是否为水仙花数
if num == i**3 + j**3 + k**3:
print(num)
```
输出结果为:
```
153
370
371
407
```
这是一个简单的方法,如果需要更高效的实现,可以使用数学方法,例如计算出每个三位数的个位、十位、百位数字,然后直接计算其立方和,而不需要将其转换为字符串。
Python 水仙花数
Python中的水仙花数是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是一个Python程序来判断一个数是否为水仙花数:
```python
def is_armstrong_number(num):
# 将数字转换为字符串,以便逐位计算
str_num = str(num)
# 获取数字的位数
n = len(str_num)
# 计算每个位上的数字的n次幂之和
sum_of_powers = sum(int(digit) ** n for digit in str_num)
# 判断是否为水仙花数
if sum_of_powers == num:
return True
else:
return False
# 测试是否为水仙花数
num = 153
if is_armstrong_number(num):
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
```
阅读全文