Pagini recente » Cod sursa (job #1158472) | Cod sursa (job #741892) | Cod sursa (job #2413807) | Cod sursa (job #1524870) | Cod sursa (job #1309108)
#include <fstream>
#define MODULO 666013
using namespace std;
long factorial(long n)
{
long k=1;
for(long i=1; i<=n; ++i)
{
k*=i;
k%=MODULO;
}
return k;
}
long exponential(long n, long pow)
{
long k=1;
for(long i=0; i<pow; ++i)
{
k*=n;
k%=MODULO;
}
return k;
}
int main()
{
ifstream in("kperm.in");
ofstream out("kperm.out");
long n, k;
in>>n>>k;
if((k*(k+1)/2)%k)
out<<"0\n";
else
{
long nmodk=n%k;
if(nmodk==0) nmodk=k;
long x1, x2, x3, x4;
x2=factorial(k-(n-1)/k-1);
x1=factorial((n-1)/k+1);
x3=factorial(nmodk);
x4=factorial(k-nmodk);
out<<(((exponential(x1, nmodk)*exponential(x2, k-nmodk))%MODULO)*(x3*x4)%MODULO)%MODULO;
}
in.close(); out.close();
return 0;
}