Pagini recente » Cod sursa (job #2983001) | Cod sursa (job #3162631) | Cod sursa (job #2719536) | Cod sursa (job #1790394) | Cod sursa (job #1442226)
#include<iostream>
#include<fstream>
#include<cmath>
#include<algorithm>
#include<vector>
#include<bitset>
#include<cstring>
#define ull unsigned long long
#define ll long long
#define FOR(a,b,c) for (int a=b;a<=c; ++a)
#define ROF(a,b,c) for (int a=b;a>=c; --a)
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
ll A,N;
void euclid(ll,ll,ll*,ll*);
int main()
{
f>>A>>N;
ll x,y;
euclid(A,N,&x,&y);
while (x<=0)
x+=N;
g<<x;
f.close();g.close();
return 0;
}
void euclid(ll a,ll b,ll* x,ll* y)
{
if (b==0)
{
*x=1;
*y=0;
}
else
{
ll x0,y0;
euclid(b,a%b,&x0,&y0);
*x=y0;
*y=x0-y0*(a/b);
}
}