서로소

면접 대비

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

요약
1e9 이하의 n이 여러 줄 주어질 때 0이 나오기 전까지, n보다 작은 양의 정수 중 n과 서로소인 수의 개수를 각 줄에 출력한다.
난이도

보통10점 중 5점

유형
정수론, 수학, 구현
정답자
아직 제출이 없습니다

문제

양의 정수 nn이 주어졌을 때, nn보다 작은 양의 정수 중에서 nn과 서로소인 수의 개수를 구하는 프로그램을 작성하시오.

두 정수 aa와 bb가 서로소라는 것은, x>1x > 1인 정수 xx와 양의 정수 yy, zz에 대해 a=xya = xy이고 b=xzb = xz가 되는 경우가 존재하지 않는다는 뜻이다. 즉, aa와 bb의 공약수가 11뿐이라는 것과 같다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄에 정수 nn 하나로 주어지며, 1≤n≤1,000,000,0001 \le n \le 1{,}000{,}000{,}000이다.

입력의 마지막 줄에는 00이 주어지며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 nn보다 작은 양의 정수 중에서 nn과 서로소인 수의 개수를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    7
    12
    0
    
    예상 출력
    6
    4