Pagini recente » Cod sursa (job #1428364) | Cod sursa (job #2620839) | Cod sursa (job #2643502) | Cod sursa (job #2569024) | Cod sursa (job #2497407)
#include <fstream>
#define R 9901
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
long long a,b,d,exp,x,y,sumdiv=1;
int explog(long long a,long long p){
if(a==1)return 1;
if(p==0)return 1;
if(p==1)return a%R;
int r=explog(a,p/2)%R;
r=(r*r)%R;
if(p%2==0)return r%R;
return r*a%R;
}
int main(){
fin>>a>>b;
for(d=2;d<=a/d;d++){
if(a%d)continue;
exp=0;
while(a%d){
exp++;
a/=d;
}
exp*=b;
x=explog(d,exp+1)-1;
if(x<0)x+=R;
y=explog(d-1,R-2);
sumdiv*=(x*y)%R;
sumdiv%=R;
}
if(a>1){
x=explog(a,b+1)-1;
if(x<0)x+=R;
y=explog((a-1)%R,R-2);
sumdiv*=x*y%R;
sumdiv%=R;
}
fout<<sumdiv;
return 0;
}