합이 n인 f개의 양의 정수 순서쌍 가운데 최대공약수가 1인 것의 개수를 1e9+7로 나눈 나머지로 구한다. 질의는 최대 100000개다.
오늘은 상근이의 생일이다. 상근이는 생일 파티에 친구 fff명을 초대했고, 나눠 줄 사탕 nnn개가 있다. 친구에게는 111번부터 fff번까지 번호가 매겨져 있다.
상근이는 다음 두 규칙을 지키면서 사탕을 나눠 준다.
nnn과 fff가 주어지면 사탕을 나눠 주는 방법의 수를 구하는 프로그램을 작성하시오.
어느 친구가 몇 개를 받았는지가 다르면 서로 다른 방법으로 센다. 예를 들어 1번 친구에게 1개, 2번 친구에게 2개를 준 경우와 1번 친구에게 2개, 2번 친구에게 1개를 준 경우는 다른 방법이다.
첫째 줄에 테스트 케이스의 개수 TTT (1≤T≤1000001 \le T \le 1000001≤T≤100000)가 주어진다.
둘째 줄부터 TTT개의 줄에 각 테스트 케이스의 nnn과 fff가 공백을 사이에 두고 주어진다. (1≤f≤n≤100001 \le f \le n \le 100001≤f≤n≤10000)
각 테스트 케이스마다 사탕을 나눠 주는 방법의 수를 100000000710000000071000000007로 나눈 나머지를 한 줄에 하나씩 출력한다.
n=6n = 6n=6, f=2f = 2f=2인 경우 가능한 방법은 [1,5][1, 5][1,5]와 [5,1][5, 1][5,1]이다.
n=7n = 7n=7, f=2f = 2f=2인 경우에는 [1,6][1, 6][1,6], [2,5][2, 5][2,5], [3,4][3, 4][3,4], [4,3][4, 3][4,3], [5,2][5, 2][5,2], [6,1][6, 1][6,1]이 가능하다.