Python求三位整数中所有的水仙花数
时间: 2024-04-29 09:25:30 浏览: 58
水仙花数是指一个三位数各个位上的数字的立方和等于该数本身,例如153是一个水仙花数,因为1^3+5^3+3^3=153。
以下是Python代码实现:
```python
for i in range(100, 1000):
num = str(i)
sum = int(num[0])**3 + int(num[1])**3 + int(num[2])**3
if sum == i:
print(i)
```
输出结果:
```
153
370
371
407
```
相关问题
python 输入一个整数,输出小于等于该整数的所有水仙花数,每行输出一个,若没有水仙花数则输出“none” “3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。
好的,这是一个比较简单的 Python 编程问题。以下是代码实现:
```python
num = int(input("请输入一个整数:"))
is_exist = False # 标记是否存在水仙花数
for i in range(100, num+1):
# 将 i 转换为字符串,然后使用列表推导式计算各位数字的 3 次方的和
s = sum([int(x)**3 for x in str(i)])
if s == i:
print(i)
is_exist = True
if not is_exist:
print("none")
```
解释一下代码:
首先,我们通过 `input()` 函数获取用户输入的整数,并将其转换为整型变量 `num`。接着,我们设置一个布尔类型的变量 `is_exist`,用来标记是否存在水仙花数。
然后,我们使用 `for` 循环从 100 循环到用户输入的整数 `num`。对于每个数字 `i`,我们使用列表推导式计算出其各位数字的 3 次方的和,并将其保存在变量 `s` 中。如果 `s` 等于 `i`,说明 `i` 是一个水仙花数,我们将其输出,并将 `is_exist` 标记为 True。
最后,如果不存在水仙花数,我们输出 "none"。
使用python运行之后可以重复判断输入三位整数是否为水仙花数
可以,你可以使用以下代码来判断:
```python
def is_armstrong(number):
# 将数字转化为字符串,计算出它的位数
num_str = str(number)
order = len(num_str)
# 初始化 sum_of_digits 变量
sum_of_digits = 0
# 计算每个数字的 order 次方之和
for digit in num_str:
sum_of_digits += int(digit) ** order
# 判断是否为水仙花数
if sum_of_digits == number:
return True
else:
return False
# 测试代码
number = 153
if is_armstrong(number):
print(f"{number} 是水仙花数")
else:
print(f"{number} 不是水仙花数")
```
请注意,该代码可以判断任意位数的水仙花数。
阅读全文