Pagini recente » Cod sursa (job #1922098) | Cod sursa (job #2989990) | Cod sursa (job #2131492) | Cod sursa (job #3219514) | Cod sursa (job #31363)
Cod sursa(job #31363)
#include <cstdio>
#include <cstdlib>
#include <cstring>
#define FOR(i, N, M) for (int i = (int)(N); i <= (int)(M); ++i)
#define REP(i, N) for (int i = 0; i < (int)(N); ++i)
typedef long long LL;
const int MODULO = 666013;
int N, K;
int fact(int x)
{
int r = 1;
FOR(i, 1, x) r = ((LL)r * (LL)i) % MODULO;
return r;
}
int pow(int x, int y)
{
int r = 1;
REP(i, y) r = ((LL)r * (LL)x) % MODULO;
return r;
}
int main(void)
{
freopen("kperm.in", "r", stdin);
freopen("kperm.out", "w", stdout);
scanf("%d %d", &N, &K);
if (K % 2 == 0) { printf("0\n"); return 0; }
LL Ans = ( fact(N%K) * fact(K - (N%K)) ) % MODULO;
Ans = ( Ans * pow( fact(1 + N/K), N%K ) ) % MODULO;
Ans = ( Ans * pow( fact(N/K), K - (N%K))) % MODULO;
printf("%lld\n", Ans);
return 0;
}