GT and numbers

Accepts: 47
Submissions: 939
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
给出两个数$N$和$M$。
$N$每次可以乘上一个自己的因数变成新的$N$。
求最初的$N$到$M$至少需要几步。
如果永远也到不了输出$-1$。
输入描述
第一行读入一个数$T$表示数据组数。
接下来$T$行,每行两个数$N$和$M$。
$T\leq1000$, $1\leq N \leq 1000000$,$1 \leq M \leq 2^{63}$.

注意M的范围。hack时建议输出最后一行的行末回车;每一行的结尾不要输出空格。
输出描述
对于每组数据,输出一个数表示答案。
输入样例
3
1 1
1 2
2 4
输出样例
0
-1
1