Pagini recente » Cod sursa (job #3153213) | Cod sursa (job #341239) | Cod sursa (job #440967) | Cod sursa (job #860700) | Cod sursa (job #1398289)
#include <cstdio>
long long fact[5001];
long long put(int a,int b)
{
if(b==0) return 1;
if(b==1) return a;
long long temp=put(a,b/2);
return ((temp*temp)%666013)*put(a,b%2)%666013;
}
int main()
{
freopen ("kperm.in","r",stdin);
freopen ("kperm.out","w",stdout);
fact[0]=1;
fact[1]=1;
for(int i=2;i<=5000;i++)
{
fact[i]=i*fact[i-1];
fact[i]%=666013;
}
int n,k;
scanf("%d%d",&n,&k);
if(k%2==0) printf("0\n");
else
{
int c=n/k,r=n%k;
long long res=1;
res*=fact[r];
res%=666013;
res*=fact[k-r];
res%=666013;
res*=(put(fact[c+1],r));
res%=666013;
res*=(put(fact[c],k-r));
res%=666013;
printf("%lld\n",res);
}
}