Cod sursa(job #2525092)
| Utilizator | Data | 16 ianuarie 2020 19:43:17 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ( "inversmodular.in" );
ofstream fout ( "inversmodular.out" );
void invers_mod ( int a, int b, int &x, int &y );
int main ( )
{
int a, mod;
fin >> a >> mod;
int x, y;
invers_mod( a, mod, x, y);
while ( x < 0 )
x += mod;
fout << x << '\n' ;
}
void invers_mod ( int a, int b, int &x, int &y )
{
if ( b == 0 )
{
x = 1;
y = 0;
return ;
}
int c = a/b;
invers_mod ( b, a%b, x, y );
int x1 = y;
int y1 = x - y*c;
y = y1;
x = x1;
}
