C 程序:寻找 1 到 500 之间的阿姆斯特朗数字
原文:https://www.studytonight.com/c/programs/numbers/armstrong-number-program
一个阿姆斯壮数或自恋数是一个 n 位数,这样其上升到 n 次方的位数之和等于该数本身。
举个例子,我们来看一个阿姆斯壮号:153
,是 3 位数,这里1<sup>3</sup> + 5<sup>3</sup> + 3<sup>3</sup>
是1 + 125 + 27
,等于 153 。
下面是一个程序,用于查找 1 到 500 之间的阿姆斯特朗数字。
#include<stdio.h>
#include<math.h>
int main()
{
printf("\n\n\t\tStudytonight - Best place to learn\n\n\n");
int n,sum,i,t,a;
printf("\n\n\nThe Armstrong numbers in between 1 to 500 are : \n\n\n");
for(i = 1; i <= 500; i++)
{
t = i; // as we need to retain the original number
sum = 0;
while(t != 0)
{
a = t%10;
sum += a*a*a;
t = t/10;
}
if(sum == i)
printf("\n\t\t\t%d", i);
}
printf("\n\n\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
}
输出:
检查一个数字是否是阿姆斯特朗数字的程序
下面是一个检查一个数字是否是阿姆斯特朗的程序。
#include<stdio.h>
#include<math.h>
int main()
{
printf("\n\n\t\tStudytonight - Best place to learn\n\n\n");
int n, sum = 0, c, t, a;
printf("Enter a number: ");
scanf("%d", &n);
t = n; // as need to retain the original number
while(n != 0)
{
a = n%10;
sum += a*a*a;
n = n/10;
}
printf("\n\n\n\t\t\tsum = %d", sum);
if(sum == t)
printf("\n\n\t\t%d is an armstrong number\n", t);
else
printf("\n\n\t\t%d is not an armstrong number\n", t);
printf("\n\n\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
}