Pagini recente » Cod sursa (job #2469556) | Cod sursa (job #2847400) | Cod sursa (job #2398118) | Cod sursa (job #2578273) | Cod sursa (job #2328877)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("patrate2.in");
ofstream fout("patrate2.out");
long long n, sol;
long long sol1, sol2;
long long sol_a[5000000001], sol_b[5000000001], sol_c[10000000002];
long long Faktorial(long long a, long long b)
{
long long res = 1;
for (long long i = a; i <= b; ++i)
res *= i;
return res;
}
long long Pow(long long a, long long b)
{
long long res = a;
for (long long i = 2; i <= b; ++i)
res *= a;
return res;
}
void Oparitii()
{
long long t = 0;
while (sol1){
++sol_a[0];
sol_a[sol_a[0]] = sol1%10;
sol1 /= 10;
}
while (sol2){
++sol_b[0];
sol_b[sol_b[0]] = sol2%10;
sol2 /= 10;
}
sol_c[0] = sol_a[0]+sol_b[0]-1;
for (long long i = 1; i <= sol_a[0]; ++i)
for (long long j = 1; j <= sol_b[0]; ++j)
sol_c[i+j-1] += sol_a[i]*sol_b[j];
for (long long i = 1; i <= sol_c[0]; ++i){
t += sol_c[i];
sol_c[i] = t%10;
t /= 10;
}
if (t)
sol_c[++sol_c[0]] = t;
}
void Solve()
{
sol1 = Faktorial(2, n);
sol2 = Pow(2, n*n);
Oparitii();
}
void Read()
{
fin >> n;
}
void Write()
{
for (long long i = sol_c[0]; i > 0; --i)
fout << sol_c[i];
}
int main()
{
Read();
Solve();
Write();
return 0;
}