UOJ Logo

NOI.AC

1S 512MB
GoodBad[-50]
Statistics

【题目描述】

不从历史中吸取教训的人注定要重蹈覆辙。输入模数 p,求 Fibonacci 数模 p 的循环节。详细的题意如下:

定义数列 Fn,其中 F0=0,F1=1,Fi=Fi1+Fi2(i2)

输入 p,求出最小的正整数 n,使得 Fnmodp=F0, Fn+1modp=F1

【输入格式】

第一行,一行一个整数 t 表示数据组数。

接下来 t 行,每行一个整数 p。

【输出格式】

输出共 t 行,对于每个输入的 p,输出一行一个整数,表示循环节。

【样例输入】

10
2
3
4
5
6
7
8
9
10
11

【样例输出】

3
8
6
20
24
16
12
24
60
10

【数据规模与约定】

对于 100% 的数据,满足 t=10,2p109

对于 30% 的数据,满足 p106

对于 30% 的数据,满足 p 是质数。

对于 20% 的数据,满⾜ p 是质数的次幂(次幂或以上)。以上三部分数据不相交。