Python获取水仙花数
时间: 2024-04-07 19:26:41 浏览: 70
水仙花数是指一个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):
# 分别获取百位、十位和个位
hundred = num // 100
ten = num % 100 // 10
one = num % 10
# 判断是否为水仙花数
if num == hundred ** 3 + ten ** 3 + one ** 3:
print(num)
```
通过循环遍历100到999的整数,使用数值运算和条件判断,判断每个整数是否为水仙花数,如果是,则打印输出。
Python 实现水仙花数
水仙花数(Narcissistic number),也称为自恋数或阿姆斯特朗数,是指一个n位正整数等于其各位数字的n次幂之和。例如,153是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
在Python中,你可以通过下面的函数来检查一个数是否是水仙花数:
```python
def is_armstrong_number(num):
# 获取数字的位数
n = len(str(num))
# 计算每一位的幂
sum_of_powers = sum(int(digit) ** n for digit in str(num))
# 判断是否相等
return num == sum_of_powers
```
这个函数首先将输入的数转换成字符串以便获取位数,然后计算每一位的n次方并求和。如果结果与原数相等,那么它就是水仙花数。
使用这个函数的例子:
```python
print(is_armstrong_number(153)) # 输出:True
print(is_armstrong_number(9474)) # 输出:True
print(is_armstrong_number(370)) # 输出:False
```
阅读全文