Pagini recente » Cod sursa (job #2275072) | Cod sursa (job #1256961) | Cod sursa (job #541076) | Cod sursa (job #1658020) | Cod sursa (job #405809)
Cod sursa(job #405809)
#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 pow(long long x,long long y)
{
if(y==1)
return x%mod;
long long v=pow(x,y>>1);
v=v*v;
v%=mod;
if(y&1)
return (v*x)%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;
}
k=((pow(i,j*b+1))-1);
if(k<0)
k+=mod;
rez*=k;
rez%=mod;
rez*=pow(i-1,mod-2);
rez%=mod;
}
if(a>1)
{
k=(pow(a,b+1)-1);
if(k<0)
k+=mod;
rez*=k;
rez%=mod;
rez*=pow(a-1,mod-2);
rez%=mod;
}
if(rez<0)
rez+=mod;
g<<rez<<"\n";
f.close();
g.close();
return 0;
}