Pagini recente » Cod sursa (job #982517) | Cod sursa (job #484053) | Cod sursa (job #2292943) | Cod sursa (job #1864559) | Cod sursa (job #2499342)
#include <fstream>
using namespace std;
bool p[8001];
int v[1010];
const int MOD=9901;
ifstream in ("sumdiv.in");
ofstream out ("sumdiv.out");
int pw (long long exp,int a)
{
int sol=1,i;
for (i = 0; (1<<i) <= exp; ++i)
{
if ( ((1<<i) & exp) > 0)
sol= (sol * a) % MOD;
a=(a * a) % MOD;
}
return sol;
}
int main()
{
int a,b,cnt=0,i,j;
long long exp,s=1;
for (i=2; i<=8000; i++)
if (!p[i])
{
v[++cnt]=i;
for (j=i*i; j<=8000; j+=i)
p[j]=1;
}
in>>a>>b;
for (i=1;v[i]*v[i]<=a;i++)
{
exp=0;
while (a%v[i]==0)
exp++,a/=v[i];
exp*=b;
s=(s*((pw(exp+1,v[i])-1)/(v[i]-1)))%MOD;
}
if (a>1)
{
exp=b;
s=(s*((pw(exp+1,a)-1)/(a-1)))%MOD;
}
out<<s;
return 0;
}