Pagini recente » Cod sursa (job #2256799) | Cod sursa (job #903359) | Cod sursa (job #1617747) | Cod sursa (job #1056752) | Cod sursa (job #1144795)
#include<fstream>
#define ro 9901
using namespace std;
ifstream fi("sumdiv.in");
ofstream fo("sumdiv.out");
int p1,p2,sd=1;
int a,b,i,d;
int exponentiere(int a,int n){
int p=1;
while(n){
if(n%2) p=(p*a)%ro;
a=(a*a)%ro;
n/=2;
}
return p;
}
int main(){
fi>>a>>b;
for(i=2;i*i<=a;i++)
if(!(a%i)){
d=0;
while(!(a%i)){ a/=i; d++; }
d*=b;
p1=(exponentiere(i%ro,d+1)-1+ro)%ro;
//invers modular
p2=exponentiere((i-1)%ro,ro-2)%ro;
sd=(((sd*p1)%ro)*p2)%ro;
}
if(a>1){
i=a; d=1;
d*=b;
p1=(exponentiere(i%ro,d+1)-1+ro)%ro;
if(!p1) sd=(1LL*sd*(b+1))%ro;
else{
p2=exponentiere((i-1)%ro,ro-2)%ro;
sd=(((sd*p1)%ro)*p2)%ro;
}
}
fo<<sd;
fi.close();
fo.close();
return 0;
}