Cod sursa(job #2978867)
Utilizator | Data | 14 februarie 2023 16:23:25 | |
---|---|---|---|
Problema | Invers modular | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
//#include <iostream>
#include <fstream>
using namespace std;
ifstream cin("inversmodular.in");
ofstream cout("inversmodular.out");
void invu(int a, int b, int &inv, int & inc) {
if(!b) {
inv = 1, inc = 0;
}
else {
invu(b, a % b, inv, inc);
int aux = inv;
inv = inc;
inc = aux - inc * (a / b);
}
}
int main()
{
int a, b, inv, inc;
cin >> a >> b;
invu(a, b, inv, inc);
if(inv > 0) cout << inv;
else cout << (inv + b) % b;
}