Pagini recente » Cod sursa (job #3170184) | Cod sursa (job #457652) | Cod sursa (job #2300922) | Cod sursa (job #358397) | Cod sursa (job #1414937)
#include <stdio.h>
#include <stdlib.h>
#define MODULO 9901
int lgput(int n,int p)
{
if(p==0) return 1;
if(p==1) return n%MODULO;
if(p%2==0) return(lgput(n*n%MODULO,p/2))%MODULO;
if(p%2==1) return(n*lgput(n*n%MODULO,p/2))%MODULO;
}
int main()
{
int a,b,x,div,exp,sum,y;
freopen("sumdiv.in","r",stdin);
freopen("sumdiv.out","w",stdout);
scanf("%d%d",&a,&b);
x=lgput(a,b);
x%=MODULO;
div=2;
sum=1;
while(div*div<=x)
{
exp=0;
while(x%div==0)
x/=div,exp++;
if(exp>0){
y=lgput(div,exp+1);
sum*=((y-1)/(div-1))%MODULO;
}
div++;
}
if(x>1)
{
y=lgput(x,2);
sum*=((y-1)/(x-1))%MODULO;
}
printf("%d\n",sum%MODULO);
return 0;
}