Cod sursa(job #1892671)
Utilizator | Data | 25 februarie 2017 10:52:58 | |
---|---|---|---|
Problema | Invers modular | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.42 kb |
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
int a,n;
pair<int,int> euclidExt(int x,int y)
{
if(y==0)
return {1,0};
pair<int,int> p = euclidExt(y,x%y);
return {p.second, p.first-(x/y)*p.second};
}
int main()
{
fin>>a>>n;
int x=euclidExt(a,n).first;
while(x<0)
x+=n;
fout<<x;
return 0;
}