读取一个数,判断是否是阿姆斯特朗数,是输出 是,不是输出 不是
时间: 2024-06-08 18:10:34 浏览: 9
阿姆斯特朗数(Armstrong number)又称为自恋数、水仙花数或变形数,指一个 $n$ 位数($n\geq 3$),它的每个位上数字的 $n$ 次幂之和等于它本身。
例如:$153$ 是一个三位数,$153=1^3+5^3+3^3$,所以 $153$ 是一个阿姆斯特朗数。
下面是一个 Python 的实现:
```python
num = int(input("请输入一个数:"))
length = len(str(num))
total = 0
# 计算每个位上数字的 n 次幂之和
for digit in str(num):
total += int(digit) ** length
# 判断是否为阿姆斯特朗数
if total == num:
print("是")
else:
print("不是")
```
示例输出:
```
请输入一个数:153
是
```
```
请输入一个数:370
是
```
```
请输入一个数:9474
是
```
```
请输入一个数:123
不是
```
相关问题
写一段代码输出1000以内的阿姆斯特朗数
当然可以,以下是 Python 代码实现:
```python
for num in range(1, 1000):
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num)
```
输出结果为:
```
1
153
370
371
407
```
以上就是输出1000以内的阿姆斯特朗数的 Python 代码实现。
输出阿姆斯特朗数C语言
以下是输出阿姆斯特朗数的C语言代码:
#include <stdio.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("请输入一个三位数:");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0) {
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
if (result == num) {
printf("%d 是阿姆斯特朗数", num);
} else {
printf("%d 不是阿姆斯特朗数", num);
}
return 0;
}