Pagini recente » Cod sursa (job #3129503) | Cod sursa (job #1690263) | Cod sursa (job #2549869) | Cod sursa (job #2595285) | Cod sursa (job #2285341)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
const int r=9901;
long long a;
long long powlog(long long int a,long long int b)
{
long long val=1;
while(b!=0)
{
if(b%2==0)
{
{
b/=2;
a*=a;
a%=r;
}
}
else
{
b--;
val*=a;
val%=r;
}
}
return val;
}
long long int p=0,j,ca,baza;
void desc(long long int &a,long long int d)
{ ca=a;
p=0;
while(a%d==0)
{
a/=d;
p++;
}
baza=ca/a;
}
int main()
{
long long s=1,i,a,b,pu;
f>>a>>b;
desc(a,2);
if(p!=0)
{
s=powlog(baza,b);
s*=2;
s--;
s%=r;
}
for(i=3; i*i<=a; i+=2)
if(a%i==0)
{
desc(a,i);
pu=powlog(baza,b);
pu*=i;
pu--;
pu/=i-1;
pu%=r;
s*=pu;
s%=r;
}
if(a>1)
{
pu=powlog(a,b+1);
pu--;
pu/=a-1;
s*=pu;
s%=r;
}
g<<s;
return 0;
}