Pagini recente » Cod sursa (job #503352) | Cod sursa (job #2028454) | Cod sursa (job #1881724) | Cod sursa (job #491072) | Cod sursa (job #1551900)
#include <iostream>
#include <cstdio>
using namespace std;
int n, a, k, l, ok=0, r, ln, kn;
void euclid(int a, int b)
{
if(b && !ok) euclid(b, a%b);
if(!b)
{
ok=1;
k=1;
l=0;
}
if(b && ok)
{
ln=k-l*(a/b);
kn=l;
l=ln;
k=kn;
}
}
int main()
{
freopen("inversmodular.in","r",stdin);
freopen("inversmodular.out","w",stdout);
scanf("%d %d", &a, &n);
euclid(a, n);
if(k<0) k+=(1-k/n)*n;
printf("%d", k);
return 0;
}