Cod sursa(job #1600528)

Utilizator robertstrecheStreche Robert robertstreche Data 15 februarie 2016 09:31:39
Problema Invers modular Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>

using namespace std;

int MOD;

inline void euclid(int a,int b,int *d,long long *x,long long *y){

   if (b==0){
    *d=a;
    *x=1;
    *y=0;
   }
   else{
    long long x0,y0;
    euclid(b,a%b,d,&x0,&y0);

    *x=y0;
    *y=(x0-1LL*(a/b)*y0)%MOD;
   }
}
int main()
{
   freopen("inversmodular.in","r",stdin);
   freopen("inversmodular.out","w",stdout);

   int a,b,c=1;
   long long x,y;
   scanf("%d %d",&a,&b);

   MOD=b;
   euclid(a,b,&c,&x,&y);
   printf("%lld",x);

   fclose(stdin);
   fclose(stdout);
}