C 언어로 암스트롱 수 찾기

CBeginner
지금 연습하기

소개

이 랩에서는 암스트롱 수 (Armstrong number) 에 대해 배우고, C 언어로 숫자가 암스트롱 수인지 확인하는 프로그램을 작성해 볼 것입니다. 암스트롱 수는 각 자릿수를 자릿수만큼 거듭제곱한 값의 합과 동일한 숫자입니다.

예를 들어,

153 은 암스트롱 수입니다. 왜냐하면 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 이기 때문입니다. 371 은 암스트롱 수입니다. 왜냐하면 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1 이기 때문입니다.

새 C 파일 생성

먼저, ~/project/ 디렉토리에 새로운 C 파일을 생성해야 합니다. 파일 이름을 main.c로 지정하겠습니다.

touch ~/project/main.c

1 부터 500 사이의 암스트롱 수 찾기

1 부터 500 사이의 암스트롱 수를 찾는 C 프로그램을 작성해 보겠습니다.

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

int main() {
    printf("\n1 부터 500 사이의 암스트롱 수는 다음과 같습니다: \n");

    for (int i = 1; i <= 500; i++) {
        int t = i, sum = 0;
        while (t != 0) {
            int digit = t % 10;
            sum += pow(digit, 3);
            t /= 10;
        }
        if (sum == i) {
            printf("%d ", i);
        }
    }

    return 0;
}

숫자가 암스트롱 수인지 확인

이제 숫자가 암스트롱 수인지 확인하는 C 프로그램을 작성해 보겠습니다.

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

int main() {
    int n, sum = 0;
    printf("숫자를 입력하세요: ");
    scanf("%d", &n);

    int temp = n;
    while (temp != 0) {
        int digit = temp % 10;
        sum += pow(digit, 3);
        temp /= 10;
    }

    if (sum == n) {
        printf("%d는 암스트롱 수입니다.\n", n);
    } else {
        printf("%d는 암스트롱 수가 아닙니다.\n", n);
    }

    return 0;
}

모두 합쳐보기

두 프로그램을 main.c 파일에 함께 넣어 보겠습니다.

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

int main() {
    // 1 부터 500 사이의 암스트롱 수
    printf("1 부터 500 사이의 암스트롱 수는 다음과 같습니다: \n");

    for (int i = 1; i <= 500; i++) {
        int t = i, sum = 0;
        while (t != 0) {
            int digit = t % 10;
            sum += pow(digit, 3);
            t /= 10;
        }
        if (sum == i) {
            printf("%d ", i);
        }
    }

    printf("\n");

    // 숫자가 암스트롱 수인지 확인
    int n, sum = 0;
    printf("숫자를 입력하세요: ");
    scanf("%d", &n);

    int temp = n;
    while (temp != 0) {
        int digit = temp % 10;
        sum += pow(digit, 3);
        temp /= 10;
    }

    if (sum == n) {
        printf("%d는 암스트롱 수입니다.\n", n);
    } else {
        printf("%d는 암스트롱 수가 아닙니다.\n", n);
    }

    return 0;
}

요약

이 랩에서는 암스트롱 수에 대해 배우고, 주어진 범위 내에서 암스트롱 수를 찾는 방법과 숫자가 암스트롱 수인지 확인하는 방법을 배웠습니다. 이 랩이 즐거웠고 C 프로그래밍에 대해 더 많이 배우는 데 도움이 되었기를 바랍니다.