정보처리기사 실기 시험 기출 문제 - 소수 판별 및 최대 소수 약수 찾기
문제
다음 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를 출력합니다.
이 프로그램은 소수 판별 알고리즘과 약수 계산을 결합하여 특정 수의 최대 소수 약수를 찾는 방식을 보여 줍니다.
							추천 자료: ASP.NET Core 인증 및 권한 부여
						
						
							추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!