Pagini recente » Cod sursa (job #2760592) | Cod sursa (job #856152) | Cod sursa (job #574866) | Cod sursa (job #1378564) | Cod sursa (job #797240)
Cod sursa(job #797240)
#include<fstream>
#include<cstdio>
using namespace std;
int n,sol[10000]; //sol=N!*(2^(N*N))
inline void Inmulteste(int A[],int B)
{
int i,t=0;
for(i=1;i<=A[0] || t;i++,t/=10000)
A[i]=(t+=A[i]*B)%10000;
A[0]=i-1;
}
int main()
{
ifstream fin("patrate2.in");
fin>>n;
fin.close();
int i,r;
sol[0]=sol[1]=1;
for(i=2;i<=n;i++)
Inmulteste(sol,i);
n=n*n;
r=n%17;
n/=17;
for(i=1;i<=n;i++)
Inmulteste(sol,(1<<17));
for(i=1;i<=r;i++)
Inmulteste(sol,2);
freopen("patrate2.out","w",stdout);
printf("%d",sol[sol[0]]);
for(i=sol[0]-1;i>0;i--)
printf("%04d",sol[i]);
printf("\n");
return 0;
}