输入格式
输入一行一个正整数 M。
输出格式
输出一行一个正整数 n。
输入输出样例
输入
2
输出
3
输入
6
输出
24
代码:
注意:题目只是说M的数据范围在2到706150之间,不要下意识以为斐波那契数组的个数也在2到706150之间,实际上斐波那契数组中数值为706150的下标比706150大的多,在10^7左右,因此斐波那契数组需要开一点。否则最后两个测试点无法通过。
#include<bits/stdc++.h>
using namespace std;
long long int m;
int re[20000000];
int main(void){
int i,j;
int ans=0;
re[0]=0;
re[1]=1;
cin>>m;
if(m==1){
cout<<2;
return 0;
}
for(i=2;i<=20000000;i++){
re[i]=(re[i-1]+re[i-2])%m;
if(re[i]==1&&re[i-1]==0){
ans=i-1;
break;
}
}
cout<<ans;
return 0;
}