python 水仙花数 浙大
时间: 2023-08-27 16:19:52 浏览: 102
水仙花数是指一个 n 位数(n≥3),它的每个位上的数字的 n 次幂之和等于它本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。下面是一个用 Python 编写的判断水仙花数的程序:
```python
def is_armstrong_number(num):
# 将数字转换为字符串,获取位数
num_str = str(num)
num_digits = len(num_str)
# 计算每个位上的数字的 n 次幂之和
armstrong_sum = sum(int(digit)**num_digits for digit in num_str)
# 判断是否为水仙花数
if num == armstrong_sum:
return True
else:
return False
# 测试示例
for i in range(100, 1000):
if is_armstrong_number(i):
print(i)
```
以上代码可以判断并输出所有的 3 位水仙花数。你可以根据需要修改代码中的范围来求解其他位数的水仙花数。
相关问题
python 水仙花数
水仙花数指一个n位数(n≥3),它的每个位上的数字的n次方之和等于它本身。例如:153=1^3+5^3+3^3。
下面是一个简单的python程序来输出所有的3位水仙花数:
```
for i in range(100, 1000):
sum = 0
temp = i
while temp:
sum += (temp % 10) ** 3
temp //= 10
if sum == i:
print(i)
```
输出结果:
```
153
370
371
407
```
这里使用了一个while循环来计算每个数位上的数字的3次方之和,并与原数比较。如果它们相等,就说明这个数是水仙花数。
python水仙花数的计算
好的,Python可以通过以下代码计算水仙花数:
```python
for num in range(100, 1000):
# 将数字拆分成个位、十位、百位
digit1 = num // 100
digit2 = (num // 10) % 10
digit3 = num % 10
# 判断是否是水仙花数
if num == digit1 ** 3 + digit2 ** 3 + digit3 ** 3:
print(num)
```
运行以上代码,输出结果为:
```python
153
370
371
407
```
这些数字就是3位水仙花数。
阅读全文