Pagini recente » Cod sursa (job #997845) | Cod sursa (job #1533001) | Cod sursa (job #1634493) | Cod sursa (job #1938182) | Cod sursa (job #1891064)
#include <fstream>
using namespace std;
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
long long n,x,y,exp,i,j,b[105],p[105],rez;
long long lgput(long long n,long long p)
{
long long a,i,sol=1;
a=n;
for(i=0;(1<<i)<=p;i++)
{
if(((1<<i)&p)>0)
sol=(sol*a)%9901;
a=(a*a)%9901;
}
return sol;
}
int main()
{
cin>>x>>y;
for(i=2;i*i<=x;i++)
{
exp=0;
while(x%i==0)
{
exp++;
x/=i;
}
if(exp)
{
n++;
b[n]=i;
p[n]=exp;
}
}
if(x>1)
{
n++;
b[n]=x;
p[n]=1;
}
for(i=1;i<=n;i++)
p[i]*=y;
rez=1;
for(i=1;i<=n;i++)
{
rez=(rez*(lgput(b[i],p[i]+1)-1))%9901;
rez=(rez*lgput(b[i]-1,9899))%9901;
}
cout<<rez;
return 0;
}