강의의 함정

아직 제출이 없습니다시간 제한5초메모리 제한128 MB

문제

학생을 가르치는 일은 즐겁지만 가끔은 창피한 순간이 온다. 며칠 전 내가 겪은 일이다. 대학 강의 첫 시간이라 아주 기본적인 내용을 다루고 있었는데, bb진법으로 적은 n!n!의 끝에 0이 몇 개 붙는지 구하는 방법이었다. 소수 ppn!n!을 나누는 횟수는 다음 식으로 구한다.

np+np2+np3+\left\lfloor \frac{n}{p} \right\rfloor + \left\lfloor \frac{n}{p^2} \right\rfloor + \left\lfloor \frac{n}{p^3} \right\rfloor + \cdots

이 식을 잘 쓰면 n!n!의 끝에 붙는 0의 개수도 구할 수 있다.

식을 설명한 뒤 10진법에서 200!200!의 끝에 붙는 0의 개수를 함께 구했고, 짓궂은 표정으로 16진법에서 100!100!의 끝에 0이 몇 개 붙는지 물었다. 답이 24라는 것은 이미 알고 있었다. 그런데 몇 분 만에 한 학생이 24라고 정답을 말해서 놀랐고, 나는 그를 칭찬했다. 잠시 뒤 그 학생의 계산을 확인해 보니 16진법이 아니라 10진법에서 100!100!의 끝에 붙는 0을 센 것이었다. 두 값이 우연히 모두 24였을 뿐이다. 조금 민망해진 나는 왜 두 값이 같았는지 알고 싶다.

2 이상의 정수 bb에 대해, n!n!bb진법으로 적었을 때 마지막 자리부터 연속으로 이어지는 0의 개수를 Z(n,b)Z(n, b)라고 하자. nnxx가 주어질 때, 2b1<b22 \le b_1 < b_2이고 어떤 정수 pxp \ge x에 대해 Z(n,b1)=Z(n,b2)=pZ(n, b_1) = Z(n, b_2) = p인 쌍 (b1,b2)(b_1, b_2)의 개수를 구하라.

입력

입력은 여러 줄로 이루어진다. 각 줄에는 정수 nn (1n1000001 \le n \le 100000)과 xx (2x25002 \le x \le 2500)가 공백으로 구분되어 주어진다. 마지막 줄에는 0이 두 개 주어지며, 이 줄은 처리하지 않는다. 마지막 줄을 빼면 입력의 줄 수는 1000개를 넘지 않는다.

출력

입력의 각 줄마다 쌍 (b1,b2)(b_1, b_2)의 개수를 한 줄에 출력한다. 어떤 출력값도 5×10185 \times 10^{18}을 넘지 않는 입력만 주어진다.