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