Pagini recente » Cod sursa (job #2540926) | Cod sursa (job #1248242) | Cod sursa (job #1118046) | Cod sursa (job #1293193) | Cod sursa (job #3215488)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("sumdiv.in");
ofstream out("sumdiv.out");
const int MOD = 9901;
long long putere (long long nr, long long exp, int mod)
{
if(exp==0)
return 1;
else
{
long long p = putere(nr, exp/2, mod);
if(exp%2==0)
return p*p%mod;
else
return p*p%mod*nr%mod;
}
}
int main()
{
int a,b;
in>>a>>b;
long long n=putere(a, b, MOD), s=1; //s - suma divizorilor
for(int d=2; d*d<=n; ++d)
{
int power=d;
while(n%d==0)
{
power=power*d;
n/=d;
}
s=s*(power-1)/(d-1);
s=s%MOD;
}
if(n>1)
s=s*(n*n-1)/(n-1);
s=s%MOD;
out<<s;
return 0;
}