파스칼 반복문의 출력

시간 제한1초메모리 제한128 MB

요약
N이 최대 10억일 때 N보다 작은 가장 큰 약수를 찾는 반복문이 몇 번 실행되는지 효율적으로 계산합니다.
난이도

쉬움10점 중 3점

유형
수학, 정수론, 시뮬레이션
정답자
아직 제출이 없습니다

문제

다음 파스칼 코드는 자연수 N을 읽고 counter의 값을 출력한다.

readln(N);
counter := 0;
for i := N-1 downto 1 do begin
    counter := counter + 1;
    if N mod i = 0 then break;
end;
writeln(counter);

반복문은 i = N - 1부터 1까지 1씩 감소하면서 진행된다. 각 반복에서 먼저 counter를 1 증가시키고, 그 직후 i가 N의 약수이면 반복을 끝낸다.

N이 주어졌을 때, 이 코드가 출력하는 값을 구하시오.

입력

첫째 줄에 자연수 N이 주어진다.

  • 1 <= N <= 10^9

출력

코드가 출력하는 counter 값을 출력한다.

예제3

  1. 예제 1

    입력
    1
    
    예상 출력
    0
    
  2. 예제 2

    입력
    10
    
    예상 출력
    5
    
  3. 예제 3

    입력
    27
    
    예상 출력
    18