如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数)。如407=4^3+0^3+7^3就是一个阿姆斯特朗数。试编程求1000内的所有3位数的阿姆斯特朗数。 **输出格式要求:"There are following Armstrong number smaller than 1000:\n" " %d "用C语言写
时间: 2024-02-20 11:57:21 浏览: 116
以下是使用C语言编写的程序,可以求出1000以内的所有3位数的阿姆斯特朗数:
```c
#include <stdio.h>
int main() {
int i, j, k, n;
printf("There are following Armstrong number smaller than 1000:\n");
for (n = 100; n < 1000; n++) {
i = n / 100;
j = (n / 10) % 10;
k = n % 10;
if (n == i * i * i + j * j * j + k * k * k) {
printf(" %d ", n);
}
}
return 0;
}
```
程序中,我们使用了一个循环,从100到999遍历所有的3位数,对于每一个数,我们将其百位、十位、个位上的数字分别取出来,然后判断该数是否等于各个数字的立方和。如果是,则输出该数,否则继续遍历下一个数。
输出结果如下所示:
```
There are following Armstrong number smaller than 1000:
153 370 371 407
```
其中,153、370、371和407都是3位数的阿姆斯特朗数。
相关问题
如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数)如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数) C语言
中如何判断一个数是否为阿姆斯特朗数?
一个数n的各个数字的立方和为m,判断n是否为阿姆斯特朗数可以使用以下代码:
#include <stdio.h>
#include <math.h>
int main()
{
int n, m, sum = 0, digit;
printf("Please enter a positive integer:");
scanf("%d", &n);
int temp = n; // 保存n的值
while (temp != 0) {
digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == n) {
printf("%d is an Armstrong number.", n);
} else {
printf("%d is not an Armstrong number.", n);
}
return 0;
}
如果n是阿姆斯特朗数,输出结果为:"n is an Armstrong number.";否则输出:"n is not an Armstrong number."
如果一个正整数(大于1)等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数)。如407=4^3+0^3+7^3就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗数。
以下是Python代码实现:
for i in range(2, 1000):
sum = 0
temp = i
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if i == sum:
print(i)
输出结果为:
153
370
371
407
因此,1000以内的所有阿姆斯特朗数为153、370、371和407。
阅读全文