Cod sursa(job #1860233)
Utilizator | Data | 27 ianuarie 2017 22:25:51 | |
---|---|---|---|
Problema | Invers modular | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#include <fstream>
using namespace std;
ifstream f("invmod.in");
ofstream g("invmod.out");
void euclid(int a,int b, int &x, int &y) {
if (b == 0) {
x=1,y=0;
return;
}
int xx,yy;
euclid(b,a%b,xx,yy);
x = yy;
y = xx-(a/b)*yy;
}
int main() {
int x, y,a,mod;
f >> a >> mod;
x = y = 0;
euclid(a,mod,x,y);
if (x < 0)
x += mod;
g << x;
return 0;
}