Cod sursa(job #1495283)

Utilizator Burbon13Burbon13 Burbon13 Data 2 octombrie 2015 20:55:54
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
using namespace std;

void euclid(const int a, const int b, long long &x, long long &y){
    if(not b){
        x = 1;
        y = 0;
        return;
    }
    euclid(b, a%b, x, y);
    long long aux = x;
    x = y;
    y = aux - (a / b)*y;
}

int main(){
    freopen("inversmodular.in", "r", stdin);
    freopen("inversmodular.out", "w", stdout);

    int n,a;
    scanf("%d %d", &a, &n);

    long long x, y;
    euclid(a,n,x,y);

    if(x < 0)
        x = n + x % n;

    printf("%lld\n", x);

    return 0;
}