소개
이 랩에서는 암스트롱 수 (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 프로그래밍에 대해 더 많이 배우는 데 도움이 되었기를 바랍니다.



