Cod sursa(job #2169943)

Utilizator catalinlupCatalin Lupau catalinlup Data 14 martie 2018 19:30:33
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>
#define INFILE "inversmodular.in"
#define OUTFILE "inversmodular.out"
using namespace std;
ifstream in(INFILE);
ofstream out(OUTFILE);

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


int main(){
    long long N,A;
    in>>A>>N;
    long long x,y;
    long long d;
    euclid3(A,N,d,x,y);
    cout<<x<<" "<<y<<"\n";
    long long inv=x;
    while(inv<0){
        inv=N+inv%N;//de ce?
    }
    out<<inv;
    return 0;
}