使用Python中的while循环do程序检查阿姆斯特朗数
时间: 2024-05-14 19:14:00 浏览: 11
阿姆斯特朗数是指一个n位数(n>=3),它的每个数位的n次方之和等于它本身。例如153是一个阿姆斯特朗数,因为1^3 + 5^3 + 3^3 = 153。
下面是使用Python中的while循环do程序检查阿姆斯特朗数的示例代码:
```
num = int(input("请输入一个数:"))
sum = 0
n = len(str(num))
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
if num == sum:
print(num,"是阿姆斯特朗数")
else:
print(num,"不是阿姆斯特朗数")
```
代码解释:
- 首先,我们使用`input()`函数获取用户输入的数字并将其转换为整数类型。
- 然后,我们使用`len()`函数获取输入数字的位数,并将其赋值给变量`n`。
- 接着,我们使用`while`循环来计算每个数位的n次方之和,并将结果存储在变量`sum`中。
- 我们使用`%`和`//`运算符来分别获取数字的每一位和消去数字的最后一位。
- 最后,我们比较输入数字和计算得到的和是否相等,如果相等,则说明输入数字是一个阿姆斯特朗数,否则不是。
注意,这个程序只能检查一个数是否是阿姆斯特朗数,如果要检查多个数,可以使用循环来重复这个过程。
相关问题
阿姆斯特朗数python
阿姆斯特朗数(Armstrong number)也叫自恋数、水仙花数或变性数,是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如:1^3+5^3+3^3=153就是一个3位的阿姆斯特朗数。
下面是Python代码实现:
```python
def is_armstrong(n):
# 获取数字位数
num_len = len(str(n))
# 计算每个数字的n次方之和
sum = 0
for i in str(n):
sum += int(i) ** num_len
# 判断是否为阿姆斯特朗数
if sum == n:
return True
else:
return False
```
调用该函数,可以判断一个数是否为阿姆斯特朗数:
```python
print(is_armstrong(153)) # 输出 True
print(is_armstrong(370)) # 输出 True
print(is_armstrong(9474)) # 输出 True
print(is_armstrong(9475)) # 输出 False
```
上述代码中,is_armstrong(n)函数接收一个整数n作为参数,返回True或False,表示n是否为阿姆斯特朗数。函数内部先获取n的位数,然后计算每个数字的n次方之和,最后判断是否等于n。
用python编写程序,检测用户输入的数字是否为阿姆斯特朗数
阿姆斯特朗数是指一个n位数(n≥3),它的每个数位上的数字的n次幂之和等于它本身。
例如,153是一个3位阿姆斯特朗数,因为1³ + 5³ + 3³ = 153。
下面是一个用Python实现的检测阿姆斯特朗数的程序:
```python
n = input("请输入一个数字:")
l = len(n)
sum = 0
for i in range(l):
sum += int(n[i])**l
if sum == int(n):
print(n + "是阿姆斯特朗数")
else:
print(n + "不是阿姆斯特朗数")
```
解释一下这个程序的思路:
1. 首先输入一个数字n。
2. 计算这个数字的位数l。
3. 通过一个for循环,将每个数位上的数字的l次幂加起来,累加到sum变量中。
4. 判断sum是否等于n,如果相等,说明n是阿姆斯特朗数,否则不是。
例如,如果输入153,程序会先计算出这是一个3位数字,然后将1³ + 5³ + 3³加起来得到153,最后判断153是否等于原来的输入,确定它是一个阿姆斯特朗数。