Cod sursa(job #2271256)

Utilizator razviii237Uzum Razvan razviii237 Data 28 octombrie 2018 12:12:30
Problema Invers modular Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>

using namespace std;

typedef pair<int, int> pr;

ifstream f("inversmodular.in");
ofstream g("inversmodular.out");

// euclid extins
pr ee(int a, int b) {

    if(b == 0) {
        return {1, 0};
    }
    pr r = ee(b, a % b);
    return {r.second, r.first - (a / b) * r.second};
}

// invers modular
int im(int x, int n)
{
    int r = ee(x, n).first;
    while(r < 0) {
        r += n;
    }
    return r;
}

int main()
{
    int x = 0, n = 0;

    f >> x >> n;

    g << im(x, n);

    f.close();
    g.close();
    return 0;
}