结果自测(通过各种数据点现实的“expected......”)感觉没错啊
附上代码
```cpp
#include<cstdio>
#include<iostream>
#include<bits/stdc++.h>
#include<cstring>
#include<cmath>
using namespace std;
long long k=1,u=1,n;
long long p=1;
long long a[100001],b[100001];
long long o=1;
long long many(int a)
{
k+=u%p;
long long t=k%p;
k=u%p;
u=t%p;
if(a==n)
{
return u;
}
return many(a+1);
}
int prime(int a)
{
for(int i=2;i<=sqrt(a);++i)
if(a%i==0)
return 0;
return 1;
}
void pzx(long long y)
{
long long r=0,g=y,f=0;
for(long long i=2;i<=sqrt(g);++i)
{
while(y%i==0&&prime(i)==1)
{
y/=i;
a[o]=i;
b[o]++;
r=1;
f=1;
}
if(f==1)
o++;
f=0;
}
if(y!=1)
{
a[o]=y;
b[o]++;
}
else
o--;
for(int i=1;i<=o-1;++i)
for(int j=1;j<=b[i];++j)
printf("%I64d*",a[i]);
for(int i=1;i<=b[o]-1;++i)
printf("%I64d*",a[o]);
printf("%I64d",a[o]);
}
int main()
{
scanf("%d",&n);
if(n==1)
{
printf("1=1");
return 0;
}
if(n==2)
{
printf("1=1");
return 0;
}
for(int i=1;i<=31;++i)
p*=2;
long long h=many(3);
printf("%I64d=",h);
pzx(h);
return 0;
}
```
by xxfdzl @ 2017-11-03 14:27:46
我**复制一个题解回来**
------------
------------
弄几组数据,结果输入47,48的时候炸了
by 亚索s @ 2018-07-16 20:30:44