Pagini recente » Cod sursa (job #1159482) | Cod sursa (job #2334003) | Cod sursa (job #2826141) | Cod sursa (job #1362883) | Cod sursa (job #1477353)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
const int MOD = 9901;
int a, b;
int lg_power(int x){
if(x == 0) return 1;
int v = lg_power(x / 2);
v = 1LL * v * v % MOD;
if(x % 2) v = 1LL * v * a % MOD;
return v;
}
int gcd(int a, int b, int &x, int &y){
if(b == 0){
x = 1;
y = 0;
return a;
}
int d, xp, yp;
d = gcd(b, a % b, xp, yp);
x = xp;
y = xp - yp * (a / b);
return d;
}
int main(){
int x, inv, y;
fin >> a >> b;
x = lg_power(b + 1) - 1;
if(x < 0) x += MOD;
y = gcd(b - 1, MOD, inv, y);
if(inv < 0) inv += MOD;
fout << x * inv % MOD;
return 0;
}