Skip to content

Armstrong Number

Apa itu?

An Armstrong number is a number that is the sum of its own digits each raised to the power of the number of digits.

For example:

9 is an Armstrong number, because 9 = 9^1 = 9
10 is not an Armstrong number, because 10 != 1^2 + 0^2 = 1
153 is an Armstrong number, because: 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
154 is not an Armstrong number, because: 154 != 1^3 + 5^3 + 4^3 = 1 + 125 + 64 = 190

Task

Write some code to determine whether a number is an Armstrong number.

The Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "armstrong_numbers.h"
#include <math.h>

bool is_armstrong_number(int candidate)
{
    if (candidate < 10)
        return 1;

    int count = 1;
    int var01 = candidate;
    while (var01 > 10)
    {
        var01 /= 10;
        count++;
    }

    var01 = candidate;
    int var02 = 0;
    int i;
    for (i = 0; i <= count; i++)
    {
        var02 += (pow((var01 % 10), count));
        var01 /= 10;
    }

    return (var02 == candidate);
}

Last update: January 22, 2021

Comments