Python获取水仙花数
时间: 2024-04-07 14:26:41 浏览: 15
水仙花数是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在Python中,你可以使用以下代码获取水仙花数:
```python
def get_armstrong_numbers(n):
armstrong_numbers = []
for num in range(10, 10**n):
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
if num == sum:
armstrong_numbers.append(num)
return armstrong_numbers
n = int(input("请输入位数:"))
armstrong_numbers = get_armstrong_numbers(n)
print(f"{n}位数的水仙花数有:{armstrong_numbers}")
```
这段代码定义了一个函数`get_armstrong_numbers`,它接受一个参数n,表示位数。函数内部使用循环遍历从10到10的n次方之间的所有数字,然后判断每个数字是否为水仙花数。如果是水仙花数,则将其添加到一个列表中。最后,打印出n位数的水仙花数列表。
相关问题
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计算水仙花数
水仙花数是指一个 n 位数 (n≥3),它的每个位上的数字的 n 次幂之和等于它本身。例如:153 = 1^3 + 5^3 + 3^3。
下面是使用 Python 计算水仙花数的代码示例:
```python
# 获取用户输入的位数
n = int(input("请输入位数:"))
# 计算最大值和最小值
min_num = 10**(n-1)
max_num = 10**n - 1
# 遍历数字范围
for num in range(min_num, max_num+1):
# 计算每个位上的数字的 n 次幂之和
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
# 如果满足水仙花数条件,则输出
if num == sum:
print(num)
```
在程序运行时,会提示用户输入位数,然后程序会计算出 n 位数的最小值和最大值,并在这个范围内遍历每个数字,计算每个位上的数字的 n 次幂之和,如果满足水仙花数条件,则输出该数字。