Pagini recente » Cod sursa (job #2973817) | Cod sursa (job #2132173) | Cod sursa (job #2420644) | Cod sursa (job #1489842) | Cod sursa (job #3161216)
#include <iostream>
#include <fstream>
using namespace std;
const int MOD = 9901;
int A,B,sumdiv=1;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
int powlg(int a,int b)
{
int sol=1;
while(b)
{
if(b&1)
sol=1LL*sol*a%MOD;
a=1LL*a*a%MOD;
b=b>>1;
}
return sol;
}
void sdiv()
{
if(A%2==0)
{
long long exp=0;
do
{
A=A>>1;
exp++;
}
while(A%2==0);
exp*=B;
sumdiv=1LL*sumdiv*(powlg(2,exp+1)-1)%MOD;
}
for(int d=3;d*d<=A;d+=2)
{
if(A%d==0)
{
long long exp=0;
do
{
A/=d;
exp++;
}
while(A%d==0);
exp*=B;
sumdiv=1LL*sumdiv*(powlg(d,exp+1)-1)%MOD*powlg(d-1,MOD-2)%MOD;
}
}
}
int main()
{
f >> A >> B;
sdiv();
g<<sumdiv;
return 0;
}