1960년에 IBM에서 일하던 Donald Wall은 피보나치 수열을 m으로 나눈 나머지가 주기를 이룬다는 사실을 증명했다.
예를 들어 피보나치 수열의 처음 10개 항을 11로 나눈 나머지는 다음과 같다.
| n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| F(n) | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 |
| F(n)mod11 | 1 | 1 | 2 | 3 | 5 | 8 | 2 | 10 | 1 | 0 |
나머지로 만든 수열은 같은 구간을 되풀이한다. 되풀이되는 부분 수열의 길이를 k(m)이라고 하면 k(11)=10이다.
Wall은 다음 성질도 증명했다.
m이 주어졌을 때 k(m)을 구하는 프로그램을 작성하시오.
첫째 줄에 테스트 케이스의 개수 P가 주어진다.
다음 P개 줄에는 각 줄마다 정수 N과 M이 공백 하나로 구분되어 주어진다. N은 테스트 케이스의 번호이고, M은 문제에서 설명한 m이다.
각 테스트 케이스마다 테스트 케이스의 번호 N과 k(M)을 공백 하나로 구분해 한 줄에 출력한다. 입력에 주어진 순서를 그대로 따른다.