Pagini recente » Cod sursa (job #2946962) | Cod sursa (job #1912593) | Cod sursa (job #1458333) | Cod sursa (job #2483621) | Cod sursa (job #2633030)
#include <iostream>
#include <fstream>
#define MOD 9901
using namespace std;
ifstream fin ("sumdiv.in");
ofstream fout ("sumdiv.out");
unsigned long long a, b, exp, sol=1;
int powlog(int x, int y){
long long sol=1;
while(y != 0){
if(y%2 == 1)
sol*=x;
x*=x;
y/=2;
x%=MOD;
sol%=MOD;
}
return sol%MOD;
}
void solve(int d){
if(a%d != 0)
return;
exp=0;
while(a%d == 0){
exp++;
a/=d;
}
sol = sol * (MOD + powlog(d, exp*b+1) - 1) % MOD;
sol = sol * powlog(d - 1, MOD - 2) % MOD;
}
int main (){
fin>>a>>b;
if(a == 0){
fout<<0;
return 0;
}
solve(2);
solve(3);
for(int i=5; 1LL*i*i<=a; i+=6){
solve(i);
solve(i+2);
}
if(a > 1)
solve(a);
fout<<sol;
return 0;
}