Pagini recente » Cod sursa (job #43943) | Cod sursa (job #2367517) | Cod sursa (job #2294440) | Cod sursa (job #1246113) | Cod sursa (job #1506684)
#include <cstdio>
#include <algorithm>
using namespace std;
#define Mod 9999991
#define Nmax 2000002
FILE *f = fopen ( "dirichlet.in", "r" );
FILE *g = fopen ( "dirichlet.out", "w" );
int Fact[Nmax];
int LgPow ( int A, int x ){
int rez = 1;
while ( x ){
if ( x & 1 )
rez = ( 1LL * rez * A ) % Mod;
x >>= 1;
A = ( 1LL * A * A ) % Mod;
}
return rez;
}
int Invers ( int N ){
return LgPow( N, Mod-2 );
}
int main(){
int N;
fscanf ( f, "%d", &N );
int go = N+N;
Fact[0] = 1;
for ( int i = 1; i <= go; ++i )
Fact[i] = ( 1LL * Fact[i-1] * i ) % Mod;
int Sol = Fact[go];
int invN = Invers(Fact[N]);
Sol = ( 1LL * Sol * invN ) % Mod;
Sol = ( 1LL * Sol * invN ) % Mod;
Sol = ( 1LL * Sol * Invers ( (N+1)%Mod ) ) % Mod;
fprintf ( g, "%d", Sol );
return 0;
}