Pagini recente » Cod sursa (job #3223172) | Borderou de evaluare (job #3206502) | Istoria paginii info-oltenia-2018/individual/10 | Cod sursa (job #748190) | Cod sursa (job #1893510)
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
void inversmodular(long long a,long long b, long long *x,long long *y)
{
if(b==0)
{
*x = 1;
*y = 0;
return;
}
else
{
long long x0,y0;
inversmodular(b,a%b,&x0,&y0);
*x = y0;
*y = x0 - (a/b)*y0;
}
}
int main()
{
long long a,n,x,y;
fin>>a>>n;
inversmodular(a,n,&x,&y);
if(x<=0)
x = n + x%n;
fout<<x;
return 0;
}