Pagini recente » Cod sursa (job #2880323) | Cod sursa (job #1508870) | Cod sursa (job #2144099) | Cod sursa (job #1549932) | Cod sursa (job #2633021)
#include <iostream>
#include <fstream>
#define MOD 9901
using namespace std;
ifstream fin ("sumdiv.in");
ofstream fout ("sumdiv.out");
unsigned long long a, b, exp, d, 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;
}
int main (){
fin>>a>>b;
exp=0;
while(a%2 == 0){
exp++;
a/=2;
}
if(exp > 0){
exp *= b;
sol *= ( powlog(2, exp+1) - 1 )%MOD;
sol %= MOD;
}
for(int i=3; 1LL*i*i<=a; i+=2){
d=i;
exp=0;
while(a%d == 0){
exp++;
a/=d;
}
if(exp > 0){
exp*=b;
sol *= ( (powlog(d, exp+1) - 1) / (d - 1) )%MOD;
sol %= MOD;
}
}
if(a > 1){
sol*=( (1LL*a*a-1)/(a-1) )%MOD;
sol%=MOD;
}
fout<<sol;
return 0;
}