w3resource

C Exercises: Check whether an n digits number is Armstrong or not

C For Loop: Exercise-59 with Solution

Write a program in C to check Armstrong number of n digits.

Pictorial Presentation:

Check whether an n digits number is Armstrong or not

Sample Solution:

C Code:

#include <stdio.h>
#include <math.h>

 
int main()
{
    int n1, onum, r, result = 0, n = 0 ;
    printf("\n\n Check whether an n digits number is armstrong or not :\n");
	printf("-----------------------------------------------------------\n"); 	

    printf(" Input  an integer : ");
    scanf("%d", &n1);

     onum = n1;
    
    while (onum != 0)
    {
        onum /= 10;
        ++n;
    }

    onum = n1;

    while (onum != 0)
    {
        r = onum % 10;
        result += pow(r, n);
        onum /= 10;
    }

    if(result == n1)
        printf(" %d is an Armstrong number.\n\n", n1);
    else
        printf(" %d is not an Armstrong number.\n\n", n1);

    return 0;
}

Sample Output:

 Check whether an n digits number is Armstrong or not :                                                       
-----------------------------------------------------------                                                   
 Input  an integer : 1634                                                                                     
 1634 is an Armstrong number.                                                                                                           

Flowchart:

Flowchart : Check whether an n digits number is armstrong or not

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a C program to find the length of a string without using the library function.
Next: C Searching and Sorting Algorithm Exercises Home

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Share this Tutorial / Exercise on : Facebook and Twitter

C Programming: Tips of the Day

Clearing a char array c

It depends on how you want to view the array. If you are viewing the array as a series of chars, then the only way to clear out the data is to touch every entry. memset is probably the most effective way to achieve this.

On the other hand, if you are choosing to view this as a C/C++ null terminated string, setting the first byte to 0 will effectively clear the string.

Ref : https://bit.ly/3uM7JnL