The Program in C to find out no. is Armstrong or not is given below:
#include <stdio.h>
#include <math.h>
int main() {
int num, temp, digit, digits, sum = 0;
printf("Enter a number: ");
scanf("%d", &num);
temp = num;
digits = (int)log10(num) + 1; // number of digits in the number
while (temp > 0) {
digit = temp % 10;
sum += pow(digit, digits);
temp /= 10;
}
if (sum == num) {
printf("%d is an Armstrong number.", num);
} else {
printf("%d is not an Armstrong number.", num);
}
return 0;
}
Output:
Enter a number: 371
371 is an Armstrong number.
Pro-Tips💡
This program prompts the user to enter a number, which is read using scanf()
.
It then uses a while loop to iterate through each digit of the number and raises it to the power of the number of digits in the number.
The sum of all these digits’ power is then compared to the original number. If they are equal, the number is an Armstrong number, otherwise it is not.
The program uses log10()
function from math.h to find the number of digits in the number.
Please let me know if you have any questions or need further clarification
Learn C-Sharp ↗
C-sharp covers every topic to learn about C-Sharp thoroughly.
Learn C Programming ↗
C-Programming covers every topic to learn about C-Sharp thoroughly.
Learn C++ Programming↗
C++ covers every topic to learn about C-Sharp thoroughly.