Cod sursa(job #1205852)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 8 iulie 2014 12:09:48
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
int a,n;

int cmmdc(int a,int b,int &x,int &y){
    if(b==0){
        x=1,y=0;
        return a;
    }
    else{
        int xa,ya,d=cmmdc(b,a%b,xa,ya);
        x=ya;
        y=xa-(a/b)*ya;
        return d;
    }
}

int main(void){
    register int i,j,x,y,aux;

    f>>a>>n;
    cmmdc(a,n,x,y);
    if(x<0){
        aux=-x;
        aux/=n;
        x+=(aux+1)*n;
        x%=n;
    }
    g<<x%n;
    return 0;
}