Cod sursa(job #2928273)

Utilizator AleXutzZuDavid Alex Robert AleXutzZu Data 22 octombrie 2022 16:53:33
Problema Invers modular Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>

std::pair<int, int> euclid(int a, int b) {
    int x = 1, y = 0;
    if (b == 0) {
        return std::make_pair(x, y);
    }

    std::pair<int, int> pair = euclid(b, a % b);

    return std::make_pair(pair.second, pair.first - (a / b) * pair.second);
}

int gcd(int a, int b) {
    if (b == 0) return a;
    return gcd(b, a % b);
}


int main() {
    std::ifstream input("inversmodular.in");
    std::ofstream output("inversmodular.out");

    int a, n;
    input >> a >> n;
    int ans = euclid(a, n).first;
    while (ans < 0) ans += n;
    output << ans;
    return 0;
}