C/C++ program for Armstrong Numbers
Given a number
N, the task is to check whether the given number is Armstrong number or not. If the given number is Armstrong Number then print
“Yes” else print
“No”.
A positive integer of D digits is called an armstrong-numbers of order D (order is the number of digits) if
Where D is number of digit in number N
and N(1), N(2), N(3)… are digit of number N.
Examples:
Input: N = 153
Output: Yes
Explanation:
153 is an Armstrong number.
1*1*1 + 5*5*5 + 3*3*3 = 153
Input: 120
Output: No
Explanation:
120 is not an Armstrong number.
1*1*1 + 2*2*2 + 0*0*0 = 9
Approach: The idea is to count the number of digits(say
d) in the given number
N. For every digit(say
r) in the given number
N find the value of
rd and if the summation of all the values is
N then print
“Yes” else print
“No”.
Below is the implementation of the above approach:
C
#include <stdio.h>
int power( int N, unsigned int D)
{
if (D == 0)
return 1;
if (D % 2 == 0)
return power(N, D / 2)
* power(N, D / 2);
return N * power(N, D / 2)
* power(N, D / 2);
}
int order( int N)
{
int r = 0;
while (N) {
r++;
N = N / 10;
}
return r;
}
int isArmstrong( int N)
{
int D = order(N);
int temp = N, sum = 0;
while (temp) {
int Ni = temp % 10;
sum += power(Ni, D);
temp = temp / 10;
}
if (sum == N)
return 1;
else
return 0;
}
int main()
{
int N = 153;
if (isArmstrong(N) == 1)
printf ( "True\n" );
else
printf ( "False\n" );
return 0;
}
|
C++
#include <bits/stdc++.h>
using namespace std;
int power( int N, unsigned int D)
{
if (D == 0)
return 1;
if (D % 2 == 0)
return power(N, D / 2)
* power(N, D / 2);
return N * power(N, D / 2)
* power(N, D / 2);
}
int order( int N)
{
int r = 0;
while (N) {
r++;
N = N / 10;
}
return r;
}
int isArmstrong( int N)
{
int D = order(N);
int temp = N, sum = 0;
while (temp) {
int Ni = temp % 10;
sum += power(Ni, D);
temp = temp / 10;
}
if (sum == N)
return 1;
else
return 0;
}
int main()
{
int N = 153;
if (isArmstrong(N) == 1)
cout << "True" ;
else
cout << "False" ;
return 0;
}
|
Time Complexity: O(log10N)
Auxiliary Space: O(1)
Last Updated :
11 Jul, 2020
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...