Pagini recente » Cod sursa (job #2198634) | Cod sursa (job #1918451) | Cod sursa (job #3030119) | Cod sursa (job #871362) | Cod sursa (job #642472)
Cod sursa(job #642472)
#include<stdio.h>
#include<math.h>
#define MOD 666013
bool p[2000041];
long n;
void read () {
scanf("%ld",&n);
}
void eratostene (bool e[],long lim) {
e[0]=1;
e[1]=1;
for (long i=2;i<=lim;i++)
for (long j=i*i;j<=lim;j=j+i)
e[j]=1;
}
long multiplicitate (long &i , long &x) {
long suma=0,numitor=i;
while (x/numitor) {
suma=suma+x/numitor;
numitor*=i;
}
return suma;
}
void rez() {
long e1,e2,e3,nr1,nr2,nr3,expo,t,c,k=1,asd;
nr1=2*n;
eratostene(p,nr1);
nr2=n;
nr3=n+1;
for (long i=1;i<=nr1;i++) {
if (p[i]==0) {
e1=multiplicitate(i,nr1);
e2=multiplicitate(i,nr2);
e3=multiplicitate(i,nr3);
expo=e1-e2-e3;
t=i;
c=1;
for (;expo>0;expo>>=1) {
if (expo&1)
c=c*t%MOD;
t=t*t%MOD;
}
k=k*c%MOD;
}
}
printf("%ld\n",k);
}
int main() {
freopen("dirichlet.in","r",stdin);
freopen("dirichlet.out","w",stdout);
read();
rez();
return 0;
}