분수

시간 제한2초메모리 제한512 MB

요약
정수 n이 주어질 때 1 - 1/n을 n을 나누면서 1과 n 사이인 분모를 가진 분수들의 합으로 표현하거나, 그러한 표현이 없음을 출력합니다.
난이도

어려움10점 중 8점

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

문제

양의 정수 nn이 주어진다.

어떤 kk에 대해, 분수 ai,bia_i, b_i (i=1…ki = 1 \dots k, aia_i와 bib_i는 양의 정수)의 수열을 찾아 다음을 만족시켜야 한다.

[\begin{cases} b_i \text{는 } n \text{을 나누고, } 1 < b_i < n \text{ for } i = 1 \dots k \ 1 \le a_i < b_i, \text{ for } i = 1 \dots k \ \sum_{i=1}^{k}{\frac{a_i}{b_i}} = 1 - \frac{1}{n} \end{cases}]

입력

입력은 정수 nn 하나로 이루어진다. (2≤n≤1092 \le n \le 10^9)

출력

첫째 줄에 그러한 분수 수열이 존재하면 “YES”, 존재하지 않으면 “NO”를 출력한다.

수열이 존재하면 다음 줄부터 수열의 정보를 다음과 같은 형식으로 출력한다.

둘째 줄에 수열의 원소 개수 kk (1≤k≤100 0001 \le k \le 100\,000)를 출력한다. 수열이 존재하면 길이가 100 000100\,000 이하인 수열이 반드시 존재한다. 다음 kk개의 줄에는 수열의 분수를 한 줄에 정수 aia_i와 bib_i 두 개로 출력한다.

힌트

두 번째 예제에는 12\frac{1}{2}, 13\frac{1}{3} 수열이 있고 12+13=1−16\frac{1}{2}+\frac{1}{3} = 1 - \frac{1}{6}이다.

예제2

  1. 예제 1

    입력
    2
    
    예상 출력
    NO
    
  2. 예제 2

    입력
    6
    
    예상 출력
    YES
    2
    1 2
    1 3