Pagini recente » Cod sursa (job #2694369) | Cod sursa (job #1670503) | Cod sursa (job #1191084) | Cod sursa (job #2754180) | Cod sursa (job #3164570)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
#define MOD 9901
long long a,b;
long long put(long long a, long long n)
{
long long p=1;
while (n>0)
{
if (n%2==1)
p=((p%MOD)*(a%MOD))%MOD;
a=(a%MOD)*(a%MOD);
n/=2;
}
return p;
}
long long sumdiv(int x, int y)
{
long long d=2;
long long exp=0;
long long s=1;
while (x%2==0)
{
exp++;
x/=2;
}
exp*=y;
s=((s%MOD)*((put(2,exp+1)-1)%MOD))%MOD;
d=3;
while (x>1)
{
exp=0;
while (x%d==0)
{
exp++;
x/=d;
}
exp*=y;
s=((s%MOD)*(((put(d,exp+1)-1)/(d-1))%MOD))%MOD;
if (d*d<=x)
d+=2;
else
d=x;
}
return s;
}
int main()
{
fin >> a >> b;
fout << sumdiv(a,b);
return 0;
}