Pagini recente » Istoria paginii runda/contestul1 | Cod sursa (job #1582956) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #2272956)
#include <fstream>
using namespace std;
ifstream in("sumdiv.in");
ofstream out("sumdiv.out");
const int MOD=9901;
int a,b;
int lgput(int n,int k)
{
int rez=1;
while(k)
{
if(k%2)
rez=(long long)(rez*n)%MOD;
n=(long long)(n*n)%MOD;
k/=2;
}
return rez;
}
void desc()
{
int d=2,rezfin=1,cnt=0;
while(d*d<=a)
{
cnt=0;
while(a%d==0)
{
a/=d;
cnt++;
}
rezfin=(long long)(rezfin*(lgput(d,cnt*b+1)-1)*lgput(d-1,MOD-1));
}
if(a!=1)
rezfin=(long long)(rezfin*(lgput(a,b+1)-1)*lgput(a-1,MOD-1));
out<<rezfin;
}
int main()
{
in>>a>>b;
desc();
return 0;
}