정보처리산업기사 실기 시험 기출 문제 - 소수 검사
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!
문제
다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.
소스 코드 파일명: prime_checking.c
#include <stdio.h>
#include <math.h>
int main() {
int arr[5];
for (int i = 0; i < 5; i++) {
arr[i] = (i + 2) + (i * 2);
}
for (int i = 0; i < 5; i++) {
printf("%d", check(arr[i]));
}
}
int check(int a) {
int n = (int)sqrt(a);
int i = 2;
while (i <= n) {
if (a % i == 0) return 0;
i++;
}
return 1;
}
입력 예시
이 프로그램은 사용자로부터 입력을 받지 않습니다.
출력 예시
01100
해설
이 프로그램은 정수 배열 arr
의 각 요소가 소수인지 아닌지를 검사하는 기능을 수행합니다. 배열 arr
의 각 요소는 수학적 표현 (i + 2) + (i * 2)
를 사용하여 계산되며, 이는 각 인덱스 값 i
에 따라 다르게 초기화됩니다.
- 배열
arr
는 다음과 같이 초기화됩니다:{4, 6, 8, 10, 12}
. check
함수는 주어진 정수a
의 제곱근을 계산하고,2
부터 이 제곱근 값까지 모든 정수로a
를 나누어 본 후 나누어떨어지면0
을 반환하여 소수가 아님을 표시하고, 나누어떨어지지 않으면1
을 반환하여 소수임을 표시합니다.- 프로그램의 최종 출력은 각 배열 요소의 소수 여부를 나타내는
01100
입니다. 여기서1
은 소수를,0
은 비소수를 나타냅니다.
이 프로그램은 기본적인 함수 생성과 배열의 사용을 통해 소수 판별 로직을 구현하는 방법을 보여줍니다.