# C 程序：检查阿姆斯特朗数

> 原文： [https://beginnersbook.com/2014/06/c-program-to-check-armstrong-number/](https://beginnersbook.com/2014/06/c-program-to-check-armstrong-number/)

如果数字的各位的立方和等于数字本身，则将数字称为阿姆斯特朗数。在下面的 C 程序中，我们检查输入的数字是否是阿姆斯特朗数。

```c
#include<stdio.h>
int main()
{
   int num,copy_of_num,sum=0,rem;

   //Store input number in variable num
   printf("\nEnter a number:");
   scanf("%d",&num);

   /* Value of variable num would change in the
      below while loop so we are storing it in 
      another variable to compare the results 
      at the end of program
   */
   copy_of_num = num;

   /* We are adding cubes of every digit
    * and storing the sum in variable sum
    */ 
   while (num != 0)
   {
      rem = num % 10;
      sum = sum + (rem*rem*rem);
      num = num / 10;
   }

   /* If sum of cubes of every digit is equal to number
    * itself then the number is Armstrong
    */
   if(copy_of_num == sum)
      printf("\n%d is an Armstrong Number",copy_of_num);
   else
      printf("\n%d is not an Armstrong Number",copy_of_num);
   return(0);
}
```

**输出：**

```c
Enter a number: 370
370 is an Armstrong Number
```

您可以像这样验证结果：

```c
370 = 3*3*3 + 7*7*7 + 0*0*0
    = 27 + 343 + 0
    = 370
```

如您所见，数字 370 的各位立方和等于数字本身。