如果预处理就把斐波那契数列%m就可以,但是换成每一次都%m就不行了,感谢大佬
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAX = 1e8+10;
int fib[MAX];
int main(){
int m;
scanf("%d",&m);
fib[1] = 1;
fib[2] = 1;
for(int i = 3; i <= MAX; i++){
fib[i] = (fib[i-1] + fib[i-2]);
}
for(int i = 1; i <= MAX; i++){
if((fib[i] % m) == 0 && (fib[i+1] % m) == 1){
printf("%d",i);
return 0;
}
}
return 0;
}