Pagini recente » Cod sursa (job #1873529) | Cod sursa (job #2839873) | Cod sursa (job #1774677) | Cod sursa (job #3210436) | Cod sursa (job #637698)
Cod sursa(job #637698)
#include<stdio.h>
#define MOD 9999991
#define CMAX 1000000
int A[CMAX],B[CMAX];
void mul(int B)
{
int i, t = 0;
for (i = 1; i <= A[0] || t; i++, t /= 10)
A[i] = (t += A[i] * B) % 10;
A[0] = i - 1;
}
void div(int B)
{
int i, t = 0;
for (i = A[0]; i > 0; i--, t %= B)
A[i] = (t = t * 10 + A[i]) / B;
for (; A[0] > 1 && !A[A[0]]; A[0]--);
}
long long mod(int B)
{
int i, t = 0;
for (i = A[0]; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
int main()
{
freopen("dirichlet.in","r",stdin);
freopen("dirichlet.out","w",stdout);
int N;
scanf("%d",&N);
unsigned long long p1,p2;
unsigned long long ans2=1;
for(p2=N+2,p1=2; p2<=(N<<1); ++p2)
{
if( !(p2&1) )
ans2= (ans2<<1);
else
ans2= (ans2*p2);
while( ans2>MOD && p1*2<N+2 && ans2%p1==0 )
ans2/=p1++;
}
for(p1; p1*2<N+2; ++p1 )
ans2/=p1;
printf("%lld\n",ans2%MOD);
/*
long long p1=1,p2=N;
A[0]=1;A[1]=1;
for( p2=2*N; p2>N+1; --p2 )
{
if( !(p2&1) )
mul(2);
else
mul(p2);
}
for(p1; p1*2<N+2; ++p1 )
div(p1);
printf("%lld\n",mod(MOD));
*/
return 0;
}