생일 파티
시간 제한5초메모리 제한512 MB
합이 n인 f개의 양의 정수 순서쌍 가운데 최대공약수가 1인 것의 개수를 1e9+7로 나눈 나머지로 구한다. 질의는 최대 100000개다.
문제
오늘은 상근이의 생일이다. 상근이는 생일 파티에 친구 명을 초대했고, 나눠 줄 사탕 개가 있다. 친구에게는 번부터 번까지 번호가 매겨져 있다.
상근이는 다음 두 규칙을 지키면서 사탕을 나눠 준다.
- 모든 친구는 사탕을 적어도 한 개 받는다.
- 번 친구가 받은 사탕의 개수를 라고 할 때, 모든 를 나누는 보다 큰 양의 정수 가 있으면 안 된다.
과 가 주어지면 사탕을 나눠 주는 방법의 수를 구하는 프로그램을 작성하시오.
어느 친구가 몇 개를 받았는지가 다르면 서로 다른 방법으로 센다. 예를 들어 1번 친구에게 1개, 2번 친구에게 2개를 준 경우와 1번 친구에게 2개, 2번 친구에게 1개를 준 경우는 다른 방법이다.
입력
첫째 줄에 테스트 케이스의 개수 ()가 주어진다.
둘째 줄부터 개의 줄에 각 테스트 케이스의 과 가 공백을 사이에 두고 주어진다. ()
출력
각 테스트 케이스마다 사탕을 나눠 주는 방법의 수를 로 나눈 나머지를 한 줄에 하나씩 출력한다.
힌트
, 인 경우 가능한 방법은 와 이다.
, 인 경우에는 , , , , , 이 가능하다.