Pagini recente » Cod sursa (job #366653) | Cod sursa (job #255317) | Cod sursa (job #1863156) | Cod sursa (job #2624368) | Cod sursa (job #1254832)
#include <iostream>
#include <fstream>
#define prim 9901LL
#define LL long long int
using namespace std;
LL A,B;
LL fast_pow(LL nr, LL p){
LL res=1,i;
for (i=1; i<=p; i<<=1){
if (p&i)
res=(res*nr)%prim;
nr=(nr*nr)%prim;
}
return res;
}
LL inv(LL nr){
return fast_pow(nr,prim-2);
}
LL get_sum(){
LL i,cnt,res=1;
for (i=2; i*i<=A; i++)
if (A%i==0){
cnt=0;
while(A%i==0)
cnt++,A/=i;
res=(((res*(fast_pow(i,cnt*B+1)-1))%prim)*inv(i-1))%prim;
}
if (A>1)
res=(((res*(fast_pow(A,B+1)-1))%prim)*inv(A-1))%prim;
return res;
}
int main(){
ifstream in("sumdiv.in");
ofstream out("sumdiv.out");
in >> A >> B;
if (B==0){
out << 1;
return 0;
}
out << get_sum();
return 0;
}