Cod sursa(job #958137)

Utilizator cousin.batmanVaru Batman cousin.batman Data 6 iunie 2013 23:13:51
Problema Invers modular Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.51 kb
#include<stdio.h>

int cmmdc(int a, int b, int *x, int *y){
    if(b==0){
        *x=1, *y=0;
        return a;
    }

    int d, xx=0, yy=0;
    d=cmmdc(b, a%b, &xx, &yy);
    *x=yy;
    *y=-((int)(a/b))*yy+xx;
    return d;
}

int main(){
    int a, n;
    freopen("inversmodular.in", "rt", stdin);
    freopen("inversmodular.out", "wt", stdout);

    scanf("%d %d", &a, &n);
    int x = 0, y = 0;
    cmmdc(a, n, &x, &y);

    while(x<0) x+=n;
    printf("%d\n", x);

    fclose(stdin);
    fclose(stdout);
    return 0;
}