Pagini recente » Cod sursa (job #393407) | Cod sursa (job #678562) | Cod sursa (job #11294) | Cod sursa (job #3134845) | Cod sursa (job #633643)
Cod sursa(job #633643)
Utilizator |
Mr. Noname cezar305 |
Data |
14 noiembrie 2011 12:21:16 |
Problema |
Dirichlet |
Scor |
Ascuns |
Compilator |
cpp |
Status |
done |
Runda |
|
Marime |
0.63 kb |
// Mihai Gheorghe
// O(N + logN)
#include <stdio.h>
#include <iostream>
using namespace std;
const long long mod = 9999991;
int n;
long long pow (long long nr, int p)
{
if (p == 1)
return nr;
long long x = pow (nr, p / 2);
x = x * x % mod;
if (p & 1)
x = x * nr % mod;
return x;
}
int main ()
{
freopen ("dirichlet.in", "r", stdin);
freopen ("dirichlet.out", "w", stdout);
cin >> n;
int i;
long long p1 = 1, p2 = 1;
for (i = n + 2; i <= 2 * n; i ++)
p1 = p1 * i % mod;
for (i = 2; i <= n; i ++)
p2 = p2 * i % mod;
cout << p1 * pow (p2, mod - 2) % mod;
return 0;
}