반응형
|
문제풀이) 우선 각각의 조건이 소수를 구하는 조건을 만족하는지 체크한다.
1) d <= n 인 경우 n 이 2 가 들어 오는 경우 f 의 값은 0 이 찍히므로 연산 오류
2) d < n 인 경우는 연산이 되지만 n - 1 번의 횟수를 연산 한 후에 print 됨
3) d < n - 1 인 경우는 2 와 3 인 경우는 소수 이므로 while 문 안의 프로세스를 수행 하지 않아도 되므로 연산이 됨, n-2 번의 횟수를 연산 한 후에 print 됨
4) d * d <= n 인 경우 제곱근으로 체크 하는 형식으로 최소의 횟수로 체크가 가능함
(예를 들면 n 이 100 까지의 임의의 수가 들어 온 경우 10 이전의 수로 나누어 지지 않는다면 소수이다. 10보다 큰 수로 나누어 진다는 말은 이미 10보다 작은 수로 나누어졌다는 이야기 임, 100 이하의 임의의 수가 13으로 나누어 진다면 그 이전에 10보다 작은 수로 나누어 졌다는 이야기임 13 * 1,13 * 2,13 * 3 ... 13 * 9 = 107 이므로 100보다 큰 수가 됨)
5) d * d < n 인 경우 n 이 4가 입력 된 경우 f = 1을 출력 하게 되므로 연산 오류임
정답) 4번
반응형
'정보올림피아드지역예선' 카테고리의 다른 글
정보올림피아드 초등 - 지역예선] 2009년도 24번문제 (0) | 2013.09.24 |
---|---|
정보올림피아드 초등 - 지역예선] 2009년도 22-23번문제 (0) | 2013.09.23 |
정보올림피아드 초등 - 지역예선] 2009년도 20번문제 (0) | 2013.09.23 |
정보올림피아드 초등 - 지역예선] 2009년도 19번문제 (0) | 2013.09.18 |
정보올림피아드 초등 - 지역예선] 2009년도 18번문제 (0) | 2013.09.18 |