Pagini recente » Cod sursa (job #2107838) | Cod sursa (job #2854314) | Cod sursa (job #1017750) | Cod sursa (job #1575014) | Cod sursa (job #405800)
Cod sursa(job #405800)
#include<fstream>
using namespace std;
const char iname[]="sumdiv.in";
const char oname[]="sumdiv.out";
const int 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;
if(a%mod==0)
{
g<<"0\n";
f.close();
g.close();
return 0;
}
rez=1;
for(i=2;i*i<=a;++i)
if(a%i==0)
{
j=0;
while(a%i==0)
{
++j;
a/=i;
}
rez*=((pow(i,j*b+1))-1);
rez%=mod;
rez*=pow(i-1,mod-2);
rez%=mod;
}
if(a>1)
rez*=(pow(a,b+1)-1),rez%=mod,rez*=pow(a-1,mod-2),rez%=mod;
if(rez<0)
rez+=mod;
g<<rez<<"\n";
f.close();
g.close();
return 0;
}