Pagini recente » Istoria paginii runda/dij/clasament | Cod sursa (job #1567385) | Atasamentele paginii Rezultate Info Oltenia 2018 Proba pe Echipe | Istoria paginii runda/49maimare48 | Cod sursa (job #164540)
Cod sursa(job #164540)
#include <stdio.h>
#include <math.h>
#define rt 2000003
#define mx 5010
long n,k;
long long r;
long v[mx];
void descomp(long nr, long ct)
{
int ok,x;
for (int i=2; i<=nr; i++)
{
x=i;
ok=0;
for (int j=2; j<=sqrt(i); j++)
if (i%j==0)
ok=1;
if (ok==0)
while (x<=nr)
{
v[i]=v[i]+ct*(nr/x);
x=x*i;
}
}
}
int main()
{
freopen("sandokan.in","r",stdin);
freopen("sandokan.out","w",stdout);
scanf("%ld %ld",&n,&k);
int cn=n;
while (cn>=k)
cn=cn-k+1;
descomp(n-1,1);
descomp(cn-1,-1);
descomp((n-cn),-1);
r=1;
for (int i=1; i<=n; i++)
for (int j=1; j<=v[i]; j++)
r=(r*i)%rt;
printf("%lld",r);
fclose(stdin);
fclose(stdout);
return 0;
}