Cod sursa(job #2254610)
Utilizator | Data | 5 octombrie 2018 17:08:16 | |
---|---|---|---|
Problema | Invers modular | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <iostream>
#include <fstream>
#include <stdlib.h>
std::ifstream in("inversmodular.in");
std::ofstream out("inversmodular.out");
using namespace std;
long long euclid(long long a,long long b, long long &x, long long &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
long long d,x0,y0;
d=euclid(b,a%b,x0,y0);
x=y0;
y=x0-(a/b)*y0;
return d;
}
long long n,p,a,b,x,y,d;
int main()
{
in>>n>>p;
d=euclid(n,p,x,y);
out<<abs(x);
return 0;
}