Pagini recente » Statistici Zabava Claudiu (Claus1911) | Cod sursa (job #1576764) | Statistici Bogdan Buzgaru alexandru (BogdanBuzgaruAlexandru) | Cod sursa (job #763756) | Cod sursa (job #193656)
Cod sursa(job #193656)
#include<stdio.h>
#define M 9901UL
unsigned long putere(unsigned long x,unsigned long e){
unsigned p=1,y=1;
while(p<=e) p*=2;
do{
p/=2;
y*=y;
y%=M;
if(e>=p){
e-=p;
y*=x;
y%=M;
}
}while(p>1);
return y%M;
}
int main(){
freopen("sumadiv.in","r",stdin);
freopen("sumadiv.out","w",stdout);
unsigned long i,p,a,b,s,sp,d,fpa[100]={0},efpa[100]={0},nrfp;
scanf("%lu%lu",&a,&b);
b=b%M;
nrfp=0;
if(!(a%2)){
fpa[0]=2;
while(!(a%2)){
efpa[0]++;
a/=2;
}
nrfp++;
}
for(d=3;d*d<=a;d+=2)
if(!(a%d)){
fpa[nrfp]=d;
while(!(a%d)){
efpa[nrfp]++;
a/=d;
}
nrfp++;
}
if(a>1) {
fpa[nrfp]=a;
efpa[nrfp]=1;
nrfp++;
}
for(i=0;i<nrfp;++i) efpa[i]*=b;
s=1;
for(i=0;i<nrfp;++i){
p=putere(fpa[i]%M,(efpa[i]+1)%M);
sp=(p-1)/(fpa[i]-1);
s=s*sp%M;
}
printf("%lu",s%M);
return 0;
}