Cod sursa(job #3223935)

Utilizator catalinaionela77Catalina Ionela Florescu catalinaionela77 Data 14 aprilie 2024 10:26:44
Problema Invers modular Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <stdio.h>
int a,n;
void euclid(long long *x,long long *y,int a,int b)
{
  if(b==0)
    {
      *x=1;
      *y=0;
    }
  else
    {
      euclid(x,y,b,a%b);
      long long aux=*x;
      *x=*y;
      *y=aux-(*y)*(a/b);
    }

}


int main(void)
{
  long long x,y;
  FILE *f1=fopen("inversmodular.in","r"),*f2=fopen("inversmodular.out","w");
  if(f1==NULL || f2==NULL)
    {
      perror(NULL);
      return 1;
    }
  fscanf(f1,"%d %d",&a,&n);
  euclid(&x,&y,a,n);
  if (x <= 0)
       x = n +x % n;
  fprintf(f2,"%lld",x);
  fclose(f1);
  fclose(f2);
  return 0;
}