[C언어 소스] 암스트롱의 수 구하기

안녕하세요. 언제나 휴일입니다.

이번에는 암스트롱의 수를 구하는 소스 코드입니다. 암스트롱의 수는 세 자리의 정수 중에서 각 자리의 수를 세 제곱한 수의 합과 자신이 같은 수를 말합니다.

예를 들어 153 = 1 + 125 + 27 입니다. 이와 같은 수를 암스트롱의 수라고 말합니다.

암스트롱의 수 구하기는 반복문을 사용하여 문제를 간단히 해결할 수 있어요.

알고리즘

암스트롱의 수 판별(num)

    num2=num

    sum=0

    반복(num2>0)

        sum = sum + (num2 %10)*(num2 %10)*(num2 %10)

        num2 = num2/10

    sum == num 결과 반환

암스트롱의 수
암스트롱의 수

소스 코드

//암스트롱의 수
//abc = a*a*a + b*b*b + c*c*c
#include <stdio.h>

int IsAmstrong(int num);
int main(void)
{
    int num = 0;
    printf("암스트롱의 수 abc = a*a*a + b*b*b + c*c*c\n");
    for (num = 100; num <= 999; num++)
    {
        if (IsAmstrong(num))
        {
            printf("%3d ", num);
        }
    }
    printf("\n");
    return 0;
}

int IsAmstrong(int num)
{
    int num2 = num;
    int sum = 0;
    while (num2>0)
    {
        sum += (num2 % 10)*(num2 % 10)*(num2 % 10);
        num2 = num2 / 10;
    }
    return sum == num;
}