Pagini recente » Cod sursa (job #2755405) | Cod sursa (job #2413789) | Cod sursa (job #2631322) | Cod sursa (job #2418498) | Cod sursa (job #1901870)
#include <cstdio>
#include <cmath>
#define NMax 7071
using namespace std;
long long a, n, p, i, j, e, m, s=1;
bool viz[NMax+5];
int main (){
freopen("sumdiv.in", "r", stdin);
freopen("sumdiv.out", "w", stdout);
scanf("%lld%lld", &a, &n);
p=1;
while (n){
if (n%2){
p=(p*a)%9901;
--n;
}
else {
a=(a*a)%9901;
n/=2;
}
}
// printf("%lld", p);
n=p;
for (i=2; i*i<=p; i++){
if (viz[i]==0){
e=0;
m=i;
while (n%i==0){
n/=i;
e++;
m=m*i;
}
if (e) s=(s*(m-1)/(i-1))%9901;
for (j=2; i*j<=p; j++)
viz[i*j]=1;
}
}
if (n>1) s=(s*(n*n-1)/(n-1))%9901;
printf("%lld", s);
}