Pagini recente » Cod sursa (job #859726) | Cod sursa (job #2182478) | Cod sursa (job #2503816) | Cod sursa (job #2432139) | Cod sursa (job #2212299)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("kperm.in");
ofstream fout("kperm.out");
typedef long long ll;
const ll MOD=666013;
ll n,k;
ll fact(ll x)
{
ll ans=1,i;
for(i=1;i<=x;i++)
ans=(ll)ans*i%MOD;
return ans;
}
ll expow(ll a,ll b)
{
ll ans=1;
while(b)
{
if(b%2==1)
ans=(ll)ans*a%MOD;
a=(ll)a*a%MOD;
b/=2;
}
return ans;
}
int main()
{
fin>>n>>k;
if(n%k==0)
{
ll ans=1;
ans*=(ll)fact(k);ans%=(ll)MOD;
ans*=(ll)expow(fact(n/k),k);ans%=(ll)MOD;
fout<<ans<<"\n";
}
else
{
ll rest=n%k;
ll ans=1;
ans*=(ll)fact(rest);ans%=(ll)MOD;
ans*=(ll)expow(fact(n/k+1),rest);ans%=(ll)MOD;
ans*=(ll)fact(k-rest);ans%=(ll)MOD;
ans*=(ll)expow(fact(n/k),k-rest);ans%=(ll)MOD;
fout<<ans<<"\n";
}
return 0;
}
/**
8
1 2 7 3 4 8 5 6
**/