Pagini recente » Istoria paginii utilizator/costinteo | Cod sursa (job #772798) | Cod sursa (job #3194849) | Cod sursa (job #334490) | Cod sursa (job #779714)
Cod sursa(job #779714)
#include <fstream>
using namespace std;
#define mod 9999991
int N;
void Citire () {
ifstream fin ("dirichlet.in");
fin >> N;
fin.close ();
}
int Business () {
long long NFact = 1;
long long v[25];
for (int i = 2; i <= N; i++)
{
NFact = (NFact * i) % mod;
}
long long InvN = 1;
v[0] = NFact;
for (int i = 1; i <= 23; i++)
{
v[i] = (v[i - 1] * v[i - 1]) % mod;
}
//1, 2, 4, 8
int Numar = mod - 2;
for (int i = 23; i >= 0; i--)
{
if (Numar >= 1 << i) InvN = (InvN * v[i]) % mod, Numar -= 1 << i;
}
NFact = 1;
for (int i = N + 2; i <= N << 1; i++)
{
NFact = (NFact * i) % mod;
}
return (NFact * InvN) % mod;
}
void Scriere () {
ofstream fout ("dirichlet.out");
fout << Business ();
fout.close ();
}
int main () {
Citire ();
Scriere ();
return 0;
}