정보처리기사 실기 시험 기출 문제 - 소수 판별 및 최대 소수 약수 찾기
추천 자료: ASP.NET Core 인증 및 권한 부여
문제
다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.
소스 코드 파일명: prime_factor_max.c
#include <stdio.h>
int isPrime(int number) {
for (int i = 2; i < number; i++)
if (number % i == 0) return 0;
return 1;
}
int main() {
int number = 13195;
int max_div = 0;
for (int i = 2; i < number; i++)
if (isPrime(i) == 1 && number % i == 0) max_div = i;
printf("%d", max_div);
}
입력 예시
이 프로그램은 사용자로부터 입력을 받지 않습니다.
출력 예시
29
해설
이 프로그램은 주어진 수 number
의 소수 약수들 중 가장 큰 값을 찾아 출력합니다.
isPrime
함수는 주어진 수가 소수인지 판별합니다. 소수가 아닐 경우 0을 반환하고, 소수일 경우 1을 반환합니다.main
함수에서는number
에 대해 2부터number
미만까지 반복하며 각 숫자가 소수이면서number
의 약수인지 검사합니다.- 소수이면서
number
의 약수인 숫자들 중 가장 큰 값을max_div
에 저장합니다. - 계산된 최대 소수 약수
max_div
를 출력합니다.
이 프로그램은 소수 판별 알고리즘과 약수 계산을 결합하여 특정 수의 최대 소수 약수를 찾는 방식을 보여 줍니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!