#include<iostream>
#include<cmath>
using namespace std;
int f[49];
bool ss[50000];
int feb(int n)
{
if(f[n]!=0)
{
return f[n];
}
return f[n]=feb(n-1)+feb(n-2);
}
int ksm()
{
int b=2,p=31;
int ans=1;
while(p!=0)
{
if(p%2==1)
{
ans*=b;
}
b=b*b;
p=p>>1;
}
return ans;
}
void zs(int a)
{
for(int i=2;i<=sqrt(a);i++)
{
if(ss[i]==0)
{
for(int j=2;i*j<=sqrt(a);j++)
{
ss[i*j]=1;
}
}
}
}
void zys(int a)
{
zs(a);
bool g=0;
do
{
g=0;
for(int i=2;i<=sqrt(a);i++)
{
if(ss[i]==0&&a%i==0)
{
cout<<i<<"*";
a/=i;
g=1;
break;
}
}
}while(g==1||ss[a]!=0);
cout<<a<<endl;
}
int main()
{
int n;
cin>>n;
f[1]=f[2]=1;
int k=ksm();
int a=feb(n)%k;
cout<<a<<"=";
zys(a);
return 0;
}
by smartpig @ 2019-07-17 20:47:39
#### f数组小了吧
by Adrien_Mertens @ 2019-07-17 20:51:32
E?
by LordLeft @ 2019-07-17 20:53:53
@[斐兹罗·罗辑](/space/show?uid=177499) f数组是算斐波那契数列的,只用48个就够了吧
by smartpig @ 2019-07-18 07:40:19
ss数组开小了。我好菜。。。
by smartpig @ 2019-07-18 07:57:47
以AC,谢谢各位dalao
by smartpig @ 2019-07-18 07:58:09