Pagini recente » Cod sursa (job #882884) | Cod sursa (job #193361) | Cod sursa (job #2069539) | Cod sursa (job #865666) | Cod sursa (job #636343)
Cod sursa(job #636343)
#include <iostream>
#include <fstream>
using namespace std;
#define MOD 9999991
typedef long long int64;
FILE* fin = fopen("dirichlet.in", "r");
FILE* fout = fopen("dirichlet.out", "w");
int64 euclid(int64 a, int64 b,int64& x,int64& y){
if (b == 0){
x = 1,y = 0;
return a;
} else {
int64 x0, y0;
euclid(b, a % b, x0, y0);
x = y0;
y = x0 - y0 * (a / b);
}
}
int64 invmod(int64 a)
{
int64 x, n, y;
euclid(a, MOD, x, y);
while (x < 0) {
x += MOD;
}
return x;
}
int main()
{
int n;
fscanf (fin, "%d ", &n);
int64 a = 1, b = 1;
for (int i = 1; i <= n; ++i) {
a = (a * i) % MOD;
b = (b * i) % MOD;
}
int64 c = (b * (n + 1)) % MOD;
for (int i = n + 1; i <= (n << 1); ++i) {
a = (a * i) % MOD;
}
int64 r = ((a * invmod(b)) % MOD * invmod (c)) % MOD;
fprintf (fout, "%lld\n", r);
fclose(fin);
fclose(fout);
return 0;
}