Cod sursa(job #1954959)
| Utilizator | Data | 5 aprilie 2017 19:09:42 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.42 kb |
#include <fstream>
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
int a,n,x,y;
void euclid(int a, int b, int &x, int &y)
{
if(b==0) {x=1;y=0; return ;}
euclid(b,a%b,x,y);
int q=a/b;
int x0=y,y0=x-q*y;
x=x0;y=y0;
return ;
}
int main()
{
f>>a>>n;
euclid(a,n,x,y);
while(x>=n) x-=n;
while(x<=0) x+=n;
g<<x<<'\n';
return 0;
}
