Pagini recente » Cod sursa (job #2600061) | Cod sursa (job #288163) | Cod sursa (job #853086) | Cod sursa (job #882407) | Cod sursa (job #2874710)
#include <fstream>
#define ll long long
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
/**
(A,N)=1;
A*X=1%N, X - inversul modular al lui A
A*X+N*Y=1;
*/
pair<ll,ll> euclid_ext(ll a,ll n)
{
if(n==0)
return {1,0};
auto p=euclid_ext(n,a%n);
return{p.second,p.first-(a/n)*p.second};
}
int main()
{
ll a,n,x,y;
fin>>a>>n;
auto p1=euclid_ext(a,n);
fout<<p1.first;//<<" "<<p1.second;
return 0;
}