Pagini recente » Cod sursa (job #1996915) | Cod sursa (job #217185) | Cod sursa (job #2323450) | Cod sursa (job #670391) | Cod sursa (job #26434)
Cod sursa(job #26434)
#include <stdio.h>
#define MOD 666013
typedef long long lint;
#define nmax 5111
lint n,k,fact[nmax];
lint put(lint x,lint j)
{
if(j==1)
return x;
lint aux=put(x,j>>1);
aux=(aux*aux)%MOD;
if(j&1)
aux*=x;
return aux%MOD;
}
lint doit(lint a,lint b)
{
if(!(b&1))
return 0;
lint r,c;
r=a%b;
c=a/b;
return ((fact[r]*fact[b-r])%MOD) * (put(fact[c+1],r)*put(fact[c],b-r)%MOD);
}
int main()
{
lint i;
freopen("kperm.in","r",stdin);
freopen("kperm.out","w",stdout);
fact[0]=1;
for(i=1;i<nmax;++i)
fact[i]=(fact[i-1]*i)%MOD;
scanf("%lld %lld",&n,&k);
printf("%lld\n",doit(n,k)%MOD);
return 0;
}