python打印出所有的油菜花数的代码
时间: 2024-03-17 21:40:06 浏览: 14
油菜花数是指一个 n 位数 (n ≥ 3) 的每个数位上的数字的平方和等于这个数本身,比如说 153 和 1634 都是油菜花数。
下面是 Python 打印出所有的油菜花数的代码:
```python
def is_youchaihua(num):
"""
判断一个数是否为油菜花数
"""
digit_sum = 0
for digit in str(num):
digit_sum += int(digit) ** 2
return digit_sum == num
for num in range(100, 100000):
if is_youchaihua(num):
print(num)
```
代码解析:
1. 我们首先定义了一个函数 `is_youchaihua`,用来判断一个数是否为油菜花数。这个函数的实现比较简单,就是把这个数的每个数位上的数字的平方相加,然后判断是否等于这个数本身。
2. 然后我们使用 `range` 函数生成从 100 到 99999 的所有数。
3. 对于每个数,我们调用 `is_youchaihua` 函数进行判断,如果是油菜花数,就打印出来。
相关问题
python打印出所有的水仙花数的代码
当一个三位数的各个位上数字的立方和等于该数本身时,这个数被称为水仙花数。例如153是一个水仙花数,因为 153 = 1^3 + 5^3 + 3^3。
下面是 Python 打印出所有的水仙花数的代码:
```python
for num in range(100, 1000):
# 求个位、十位和百位数字
digit1 = num % 10
digit2 = num // 10 % 10
digit3 = num // 100
# 判断是否为水仙花数
if num == digit1 ** 3 + digit2 ** 3 + digit3 ** 3:
print(num)
```
代码解析:
1. 我们使用 `range` 函数生成从 100 到 999 的所有三位数。
2. 对于每个三位数,我们使用取余和整除操作求出它的个位、十位和百位数字。
3. 然后我们判断该数是否为水仙花数,如果是,就打印出来。
Python编码打印所有水仙花数 代码
以下是Python编码打印所有水仙花数的代码:
```python
for num in range(100, 1000):
# 一个三位数各个数位上的数字的立方和等于该数本身,即为水仙花数
temp = num
sum = 0
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num)
```
该代码会输出所有的三位数水仙花数。