Pagini recente » Cod sursa (job #2867533) | Cod sursa (job #210652) | Cod sursa (job #1964537) | Cod sursa (job #462850) | Cod sursa (job #1979562)
#include <cstdio>
struct eulerEc
{
long long int a;
long long int b;
long long int x;
long long int y;
long long int d;
};
eulerEc* euler(long long a, long long b)
{
eulerEc* e;
if (!b)
{
e = new eulerEc;
e->a = a;
e->b = b;
e->x = 1;
e->y = 0;
e->d = a;
} else {
e = euler(b, a%b);
e->a = a;
e->b = b;
long long aux = e->x;
e->x = e->y;
e->y = aux - (a/b)*e->y;
}
return e;
}
int main()
{
long long int a;
long long int n;
fscanf(stdin, "%lld%lld", &a, &n);
eulerEc * e = euler(a, n);
fprintf(stdout, "%lld\n", e->x % n);
delete e;
return 0;
}