Cod sursa(job #2026839)
Utilizator | Alex Enache Alex18mai | Data | 25 septembrie 2017 10:25:02 |
---|---|---|---|
Problema | Invers modular | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
using namespace std;
ifstream cin ("inversmodular.in");
ofstream cout ("inversmodular.out");
void euclid_3 (int a , int b , int &x , int &y){
if (b == 0){
x = 1;
y = 0;
return;
}
euclid_3(b , a % b , x , y);
int old = y;
y = x - (a / b) * y;
x = old;
}
int main() {
int a , b;
cin>>a>>b;
int x , y;
euclid_3 (a , b , x , y);
if (x <= 0){
x = b + x%b;
}
cout<<x;
//cout<<" "<<y;
return 0;
}