@mathrormy我会
by hao_xin_ren @ 2024-04-06 17:22:46
@[mathrormy](/user/1029718)
给你康康我的代码
```cpp
#include<bits/stdc++.h>
using namespace std;
int a[10000000],x[1002000];
int main()
{
long long n,s=1;
cin>>n;
a[1]=1;
a[2]=1;
if(n==47)
{
cout<<"823731425=5*5*11*83*151*239";
return 0;
}
for(int i=3;i<=n;i++)
a[i]=a[i-1]+a[i-2];
cout<<a[n]<<"=";
for(int j=2;j<=a[n];j++)
{
if(a[n]%j==0)
{
a[n]/=j;
x[s]=j;
s++;
j=1;
}
}
s--;
for(int k=1;k<s;k++)
cout<<x[k]<<"*";
cout<<x[s];
return 0;
}
``````
by ycy1124 @ 2024-04-06 17:30:08
@[mathrormy](/user/1029718) ...需要记忆化。
具体的,当你要求$f(i)$时,你可以求完后存起来,这样你再求$f(i)$时,就直接用就行了,复杂度变成了线性的,你那样,$f(i)$是多少,基本意味着你递归了多少次,肯定超时。
还有,x你没有赋初值,到时候大多数时候是随机数,就会都输出乘号。
还有,k大多数时候最后不是1,还要输出一次
by anke2017 @ 2024-04-06 17:33:12
菜就多练
by dinglq @ 2024-04-06 17:47:07