Pagini recente » Cod sursa (job #747916) | Cod sursa (job #1103162) | Cod sursa (job #1925740) | Cod sursa (job #3252452) | Cod sursa (job #996422)
Cod sursa(job #996422)
#include <cstdio>
#define MOD 9901
using namespace std;
int a, b, nr, sum_div=1, i, exp;
int power (int base, int exp)
{
int result=1;
while(exp)
{
if( exp & 1 )
result = (1LL * result * base) % MOD;
base = (1LL * base * base)%MOD;
exp >>= 1;
}
return result;
}
int main()
{
freopen("sumdiv.in", "r", stdin);
freopen("sumdiv.out", "w", stdout);
scanf("%d %d", &a, &b);
nr = power (a, b);
for(i=2; nr>1 && i*i<=nr; ++i)
if( !(nr%i) )
{
exp=0;
while( !(nr%i) )
{
nr/=i;
++exp;
}
sum_div = ( 1LL * sum_div * (power(i, exp+1)-1)/(i-1) ) % MOD;
}
if( nr>1 )
sum_div = ( 1LL * sum_div * (nr+1) ) % MOD;
printf("%d\n", sum_div);
return 0;
}