Cod sursa(job #1174547)

Utilizator alecsandrualex cuturela alecsandru Data 23 aprilie 2014 11:50:27
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <cstdio>

using namespace std;

int a,n,x, y;

void euclid( int a, int b, int &x, int &y );

int main()
{
 freopen("inversmodular.in", "r", stdin );
 freopen("inversmodular.out", "w", stdout );

 scanf("%d %d",&a,&n );

 euclid(n,a,x,y);

 while (y<0)
  y+=n;

 printf("%d\n", y);

return 0;
}

void euclid( int a, int b, int &x, int &y )
{
 if(b==0)
 {
  x=1;
  y=0;
  return;
 }

 int x0,y0;
 int c=a/b;

 euclid(b,a%b,x0,y0);

 x=y0;
 y=x0-c*y0;
}