C Program to Generate First N Armstrong Numbers Where N is Given by User
A number is said to be Armstrong or Narcissistic Number if it is equal to the sum of its own digits raised to the power of the number of digits in a given number.
For example number 153 is Armstrong number because: 13 + 53 + 33 = 153
Similary, 1634 is also Armstrong number i.e. 14+64+34+44 = 1634
Single digits number 1 to 9 are also Armstrong numbers.
In this C program, we are going to generate first N Armstrong Numbers where value of N is given by user.
Program
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
int n, digitCount, number, sum, rem, i=2, count=1;
clrscr();
printf("Enter how many Armstrong numbers? \n");
scanf("%d", &n);
/* Generating Armstrong Numbers */
while(count <= n)
{
/* Finding number of digits */
number = i;
digitCount = 0;
while(number != 0)
{
digitCount++;
number = number/10;
}
/* Finding sum */
number = i;
sum = 0;
while(number != 0)
{
rem = number%10;
sum = sum + pow(rem, digitCount);
number = number/10;
}
/* Making Decision and Printing */
if(sum == i)
{
printf("%d\t", i);
count++;
}
i++;
}
getch();
return(0);
}
Output of the above program :
Run 1: ---------- Enter how many Armstrong numbers? 5 ↲ 1 2 3 4 5 Run 2: ---------- Enter how many Armstrong numbers? 15 ↲ 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 Note: ↲ indicates enter is pressed.