정보처리산업기사 실기 시험 기출 문제 - 소수 검사

  • 2 minutes to read

문제

다음 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에 따라 다르게 초기화됩니다.

  1. 배열 arr는 다음과 같이 초기화됩니다: {4, 6, 8, 10, 12}.
  2. check 함수는 주어진 정수 a의 제곱근을 계산하고, 2부터 이 제곱근 값까지 모든 정수로 a를 나누어 본 후 나누어떨어지면 0을 반환하여 소수가 아님을 표시하고, 나누어떨어지지 않으면 1을 반환하여 소수임을 표시합니다.
  3. 프로그램의 최종 출력은 각 배열 요소의 소수 여부를 나타내는 01100입니다. 여기서 1은 소수를, 0은 비소수를 나타냅니다.

이 프로그램은 기본적인 함수 생성과 배열의 사용을 통해 소수 판별 로직을 구현하는 방법을 보여줍니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com