Pagini recente » Cod sursa (job #191690) | Cod sursa (job #427554) | Cod sursa (job #1942238) | Monitorul de evaluare | Cod sursa (job #779724)
Cod sursa(job #779724)
#include<stdio.h>
int a[1000001];
unsigned long mod(int A[], unsigned long X)
{
int i;
unsigned long R=0;
for (i=A[0];i;i--)
{
A[i]=(R=10*R+A[i])/X;
R%=X;
}
while (!A[A[0]] && A[0]>1)
A[0]--;
return R;
}
void prod(int H[], unsigned long X)
{
int i;
unsigned long T=0;
for (i=1;i<=H[0];i++)
{
H[i]=H[i]*X+T;
T=H[i]/10;
H[i]=H[i]%10;
}
while (T)
{
H[++H[0]]=T%10;
T/=10;
}
}
int main()
{
int i,num,n;
freopen("dirichlet.in","r",stdin);
freopen("dirichlet.out","w",stdout);
scanf("%ld",&n);
a[0]=a[1]=1;
for (i=n+2;i<=2*n;i++)
prod(a,i);
for (i=2;i<=n;i++)
num=mod(a,i);
printf("%ld",mod(a,9999991));
}