Pagini recente » Cod sursa (job #1206224) | Cod sursa (job #2107486) | Cod sursa (job #1404424) | Cod sursa (job #1348661) | Cod sursa (job #2633020)
#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; 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;
}
}
fout<<sol;
return 0;
}