@[Zhouyuhan_1125](/user/654004)
1. 这道题用递归求解会超时,得用递推或通项公式求解。
1. 要开 $long\;long$ 因为斐波那契数列第 $47$ 项会爆$int$。
3. 建议你在过程中求解(如果开了$long\;long$ 就不用),不要在最后在 $\bmod\ 2^{31}$。
## 代码
```
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=pow(2,31);
int b;
int a[1000005];
signed main()
{
int n;
cin>>n;
a[1]=1;
a[2]=1;
for(int i=3; i<=n; i++)
{
a[i]=(a[i-1]%N+a[i-2]%N)%N;
}
b=a[n];
cout<<b<<"=";
for(int i=2; i*i<=b;i++)
{
while(b%i==0)
{
if(i==b)
{
cout<<i;
b/=i;
}
else
{
cout<<i<<"*";
b/=i;
}
}
}
if(b!=1)
{
cout<<b;
}
return 0;
}
```
by yhylivedream @ 2023-04-17 20:32:18
~~原来这么简单~~ 蟹蟹
by Zhouyuhan_1125 @ 2023-04-19 18:08:10