Pagini recente » Cod sursa (job #2362213) | Cod sursa (job #2666331) | Cod sursa (job #1424444) | Cod sursa (job #371264) | Cod sursa (job #1936176)
#include <fstream>
using namespace std;
ifstream in ("sumdiv.in");
ofstream out ("sumdiv.out");
long long d[5000001],p[5000001];
long long sum=1;
long long lgputmoka(long long n,long long p)
{
long long a,i,sol=1;
a=n;
for(i=0;(1<<i)<=p;i++)
{
if((p&(1<<i))>0)
sol=(sol*a)%9901;
a=(a*a)%9901;
}
return sol;
}
int main()
{
int a,b,pu=0;
in>>a>>b;
int i,j=0;
for(i=2;i*i<=a;i++)
{
pu=0;
while(a%i==0)
{
a/=i;
pu++;
}
if(pu)
{
j++;
d[j]=i;
p[j]=1LL*pu*b;
}
}
if(a>1)
{
j++;
d[j]=a;
p[j]=b;
}
for(i=1;i<=j;i++)
{
sum=(sum*((lgputmoka(d[i],p[i]+1)-1)/(d[i]-1)))%9901;
}
out<<sum;
return 0;
}