Pagini recente » Cod sursa (job #982772) | Cod sursa (job #116024) | Cod sursa (job #2315485) | Cod sursa (job #630757) | Cod sursa (job #25639)
Cod sursa(job #25639)
#include <stdio.h>
#define MOD (666013)
long long fact(long long x)
{
long long tmp = 1, i;
for(i = 2; i <= x; ++ i) {
tmp *= i;
tmp %= MOD;
}
return tmp;
}
long long power(long long x, long long y)
{
long long tmp = x, i;
for(i = 2; i <= y; ++ i) {
tmp *= x;
tmp %= MOD;
}
if(y == 0)
tmp = 1;
return tmp;
}
int main()
{
long long N, K, X, tmp;
freopen("kperm.in", "r", stdin);
freopen("kperm.out", "w", stdout);
scanf("%lld %lld", &N, &K);
long long k1 = N%K, k2 = K-k1, r1 = N/K+1, r2 = N/K;
//if(k1 < k2) {int tmp = k1; k1 = k2; k2 = tmp;}
//printf("%lld %lld %lld %lld\n", k1, r1, k2, r2);
X = fact(k1)*fact(k2); X %= MOD;
tmp = fact(r1); tmp = power(tmp, k1);
X *= tmp; X %= MOD;
tmp = fact(r2); tmp = power(tmp, k2);
X *= tmp; X %= MOD;
if(K%2 == 0)
X = 0;
printf("%lld\n", X);
return 0;
}