思路:
水题;
代码:
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; #define mod (1LL<<31) long long f[],ans; int main()
{
f[]=,f[]=;
for(int i=;i<=;i++) f[i]=(f[i-]+f[i-])%mod;
int n;scanf("%d",&n);int lit=sqrt(f[n]);
bool if_=true;
for(int i=;i<=lit;i++)
{
if(f[n]%i==)
{
if_=false;
break;
}
}
if(if_)
{
printf("%d=%d",f[n],f[n]);
return ;
}
if_=true;int pos=f[n];printf("%d=",pos);
for(int i=;i<=lit;i++)
{
while(pos%i==)
{
if(if_) printf("%d",i),if_=false;
else printf("*%d",i);
pos/=i;
}
}
if(pos!=) printf("*%d",pos);
return ;
}