Pagini recente » Cod sursa (job #873592) | Cod sursa (job #2432927) | Cod sursa (job #960560) | Cod sursa (job #516983) | Cod sursa (job #338659)
Cod sursa(job #338659)
#include<cstdio>
const int b = 1000000;
const int N = (1<<20);
int n,v[N];
void produs(int *v,int x)
{
int t=0,aux,i;
for(i=1;i<=v[0] || t;++i)
{
aux=v[i]*x+t;
t=aux/b;
v[i]=aux%b;
}
v[0]=i-1;
}
void fact(int n)
{
v[0]=v[1]=1;
for(int i=2;i<=n;++i)
produs(v,i);
}
void pow2(int n)
{
while(n--)
produs(v,2);
}
void tipar(int x)
{
char s[]="000000",*p;
p=s+5;
do{
*p='0'+x%10;
x/=10;
--p;
}while(x);
printf("%s",s);
}
void scrie()
{
printf("%d",v[v[0]]);
for(int i=v[0]-1;i;--i)
tipar(v[i]);
printf("\n");
}
long long f(int n)
{
long long p=1;
for(int i=2;i<=n;++i)
p*=i;
return p;
}
int main()
{
freopen("patrate2.in","r",stdin);
freopen("patrate2.out","w",stdout);
scanf("%d",&n);
fact(n);
//printf("nrc=%d\n",v[0]);
pow2(n*n);
scrie();
//printf("%lld\n",f(n)*((long long)1<<(n*n)));
return 0;
}