#CF1334E. 除子路径
除子路径
E. 除数路径
每个测试的时间限制: 秒
内存限制: MB
给定一个正整数 。我们基于它构建如下无向图:
- 每个顶点是 的一个正因子(不一定是素数, 和 本身也包括在内);
- 两个顶点 和 ()之间有一条无向边,当且仅当 被 整除且 是素数;
- 边的权值定义为 的因子个数减去 的因子个数,即 的因子中不是 的因子的个数。
例如, 的图如下所示(图略)。
边 的权值为 ,因为 的因子集合为 , 的因子集合为 ,所以 的因子中有 个不是 的因子:。
和 之间没有边,因为 不能被 整除。 和 之间也没有边,因为 不是素数。
定义图中两个顶点 和 之间路径的长度为路径上所有边的权值之和。例如,路径 的长度为 。空路径的长度为 。
因此,两个顶点 和 之间的最短路径是指长度最小的路径。
两条路径 和 被认为是不同的,如果它们的边数不同,或者存在某个位置 使得第 条边 与 不同。
给定 个询问,每个询问的形式为:
—— 计算顶点 和 之间的最短路径的数量,结果对 取模。
输入
第一行一个整数 ()—— 用于构建图的数。
第二行一个整数 ()—— 询问数量。
接下来 行,每行两个整数 和 ()。保证 能被 和 整除(即 和 都是 的因子)。
输出
输出 行,每行一个整数 —— 对应询问的答案模 。
样例
样例输入1
12
3
4 4
12 1
3 4
样例输出1
1
3
1
样例输入2
1
1
1 1
样例输出2
1
样例输入3
288807105787200
4
46 482955026400
12556830686400 897
414 12556830686400
4443186242880 325
样例输出3
547558588
277147129
457421435
702277623