Sunday, April 12, 2015

C program to generate and print armstrong numbers

C program to generate and print armstrong numbers

C program to generate Armstrong numbers. In our program user will input two integers and we will print all Armstrong numbers between two integers. Using a for loop we will check numbers in the desired range. In our loop we call our function check_armstrong which returns 1 if number is Armstrong and 0 otherwise. If you are not familiar with Armstrong numbers see Check Armstrong number program.

C programming code

#include <stdio.h>
 
int check_armstrong(int);
int power(int, int);
 
int main () {
int c, a, b;
 
printf("Input two integers\n");
scanf("%d%d", &a, &b);
 
for (c = a; c <= b; c++) {
if (check_armstrong(c) == 1)
printf("%d\n", c);
}
 
return 0;
}
 
int check_armstrong(int n) {
long long sum = 0, temp;
int remainder, digits = 0;
 
temp = n;
 
while (temp != 0) {
digits++;
temp = temp/10;
}
 
temp = n;
 
while (temp != 0) {
remainder = temp%10;
sum = sum + power(remainder, digits);
temp = temp/10;
}
 
if (n == sum)
return 1;
else
return 0;
}
 
int power(int n, int r) {
int c, p = 1;
 
for (c = 1; c <= r; c++)
p = p*n;
 
return p;
}

Output of program:
Generate Armstrong numbers c program
In the sample output we are printing Armstrong numbers in range [0, 1000000].

No comments:

Post a Comment