Pagini recente » Cod sursa (job #974994) | Cod sursa (job #358970) | Cod sursa (job #110409) | Cod sursa (job #2669039) | Cod sursa (job #3039201)
#include <fstream>
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
int MOD = 9901;
int pow(int x, int y)
{
x = x % MOD;
int rez = 1;
int r;
while(y != 0)
{
r = y % 2;
if(r == 1)
{
rez = (rez * x) % MOD;
}
x = (x * x) % MOD;
y = y / 2;
}
return rez % MOD;
}
void gcd(int a, int b, long long *x, long long *y)
{
if(b == 0)
{
*x = 1;
*y = 0;
}
else
{
long long x0, y0;
gcd(b, a%b, &x0, &y0);
*x = y0;
*y = x0 - (a/b) * y0;
}
}
int main()
{
int a, b;
f>>a>>b;
int p1 = (pow(a, b+1)-1) % MOD;
int p2 = a-1;
long long inv, y;
gcd(p2, MOD, &inv, &y);
while(inv < 0)
{
inv += MOD;
}
int ans = (1LL*p1*inv) % MOD;
g<<ans;
return 0;
}