Pagini recente » Cod sursa (job #555116) | Cod sursa (job #3136975) | Cod sursa (job #2718616) | Cod sursa (job #2118511) | Cod sursa (job #3206154)
#include <fstream>
#define mod 9901
using namespace std;
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
int a, b, c, ok, p;
long long sol=1;
int expr(int x, int y)
{
if(y==0)
return 1;
long long ans=expr(x,y/2)%mod;
if(y%2==0)
return (ans*ans)%mod;
else
return (x*ans*ans)%mod;
}
int main()
{
cin>>a>>b;
for(int d=2; d*d<=a; d++)
{
ok=0;
p=0;
while(a%d==0)
{
p++;
a/=d;
ok=1;
}
sol*=(expr(d,p*b+1)%mod-1)/(d-1)%mod;
}
if(a>1)
sol*=(expr(a,b+1)%mod-1)/(a-1)%mod;
cout<<sol%mod;
}
/*
formula sumei divizorilor unui numar natural
S(n)=(p1^(e1+1)-1)/(p1-1)+(p2^(e2+1)-1)/(p2-1)+...+(pn^(en+1)-1)/(pn-1)
unde p1,p2,..,pn sunt factorii primi din descompunere
e1,e2,..,en sunt exponentii factorilor
*/