奇妙的Fibonacci
Fibonacci 数列是这样一个数列:
F1=1,F2=1,F3=2, …
Fi=Fi−1+Fi−2(i≥3).
pty 忽然对这个古老的数列产生了浓厚的兴趣,他想知道:对于某一个 Fibonacci 数 Fi,有多少个 Fj 能够整除 Fi(i 可以等于 j);他还想知道所有这些 j 的平方之和是多少。
输入格式
第一行一个整数 Q,表示 Q 个询问。
第二行四个整数 Q1,A,B,C,其中第 i 个询问为
Qi=(Qi−1×A+B)modC+1(i≥2).
输出格式
记 Ai 为第 i 个询问中有多少个 Fj 能够整除 FQi,Bi 为第 i 个询问中所有这些 j 的平方之和。
输出包括两行:第一行是所有 Ai 之和,第二行是所有 Bi 之和。
由于答案过大,只需要输出除以 109+7 得到的余数即可。
样例输入
2
2 2 1 8
样例输出
6
55
样例解释
两个询问分别为 Q1=2 与 Q2=(2×2+1)mod8+1=6。
- F2=1,能整除它的有 F1,F2,共 2 个,对应 j 的平方和为 12+22=5;
- F6=8,能整除它的有 F1,F2,F3,F6(值分别为 1,1,2,8),共 4 个,对应 j 的平方和为 12+22+32+62=50。
因此两行答案分别为 2+4=6 与 5+50=55。
数据范围
对于 100% 的数据保证:
- Q≤3×106;
- A≤107,B≤107,C≤107;
- 1≤Q1≤C。
来源与许可
本题题面与测试数据整理自 BZOJ 2813。
样例 1
输入
2
2 2 1 8
输出
6
55