최대공약수의 기댓값
시간 제한2초메모리 제한512 MB
K개의 값이 각자의 구간에서 균등하게 독립적으로 선택될 때, 선택된 수들의 최대공약수의 기댓값을 유리수로 구해 10^9+7로 나눈 값을 출력합니다.
문제
크기가 인 두 수열 와 가 주어진다. 수열 는 와 로 만들며, 는 이상 이하인 정수 중 하나를 같은 확률로 뽑은 값이다. 각 는 서로 독립으로 뽑는다.
수열 와 가 주어졌을 때, 의 기댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 ()가 주어진다.
각 테스트 케이스의 첫째 줄에는 ()가 주어진다. 다음 개의 줄에는 와 가 공백으로 구분되어 한 줄에 하나씩 주어진다. ()
출력
각 테스트 케이스마다 한 줄에 답을 하나씩 출력한다.
기댓값을 기약분수로 나타낸 결과가 일 때, 이 로 나누어떨어지는 ()을 출력한다. 그런 이 없으면 을 출력한다.