Pagini recente » Cod sursa (job #2976769) | Cod sursa (job #2065842) | Cod sursa (job #2072375) | Cod sursa (job #588885) | Cod sursa (job #405844)
Cod sursa(job #405844)
#include<fstream>
using namespace std;
const char iname[]="sumdiv.in";
const char oname[]="sumdiv.out";
const long long mod=9901;
ifstream f(iname);
ofstream g(oname);
long long a,b,i,j,k,rez;
long long powx(long long x,long long y)
{
if(y==0)
return 1LL;
long long v=powx(x,y>>1);
v=v*v;
v%=mod;
if(y&1)
return (v*(x%mod))%mod;
return v;
}
int main()
{
f>>a>>b;
rez=1;
for(i=2;i*i<=a;++i)
if(a%i==0)
{
j=0;
while(a%i==0)
{
++j;
a/=i;
}
if(i%mod==1)
{
rez*=j*b+1,rez%=mod;
continue;
}
k=((powx(i,j*b+1))+mod-1);
rez*=k;
rez%=mod;
rez*=powx(i-1,mod-2);
rez%=mod;
}
if(a>1)
{
k=(powx(a,b+1)+mod-1);
rez*=k;
rez%=mod;
rez*=powx(a-1,mod-2);
rez%=mod;
}
g<<rez<<"\n";
f.close();
g.close();
return 0;
}