Cod sursa(job #2862879)

Utilizator mmocanuMocanu Mihai-Adrian mmocanu Data 5 martie 2022 23:00:33
Problema Invers modular Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>
#include <stdlib.h>

void Euclid(long long a,long long b,long long *x,long long *y){
  if(b==0){
    *x=1;
    *y=0;
  }else{
    long long x0,y0;
    Euclid(b,a%b,&x0,&y0);
    *x=y0;
    *y=x0-(a/b)*y0;
  }
}

int main(){
  long long a,b,x,y;
  FILE *fin,*fout;
  fin=fopen("inversmodular.in","r");
  fout=fopen("inversmodular.out","w");
  fscanf(fin,"%lld%lld",&a,&b);

  Euclid(a,b,&x,&y);

  while(x<0){
    x+=b;
  }
  fprintf(fout,"%lld",x%b);

  fclose(fin);
  fclose(fout);
  return 0;
}