Cod sursa(job #3357018)

Utilizator Chesa.DavidChesa David Chesa.David Data 5 iunie 2026 00:26:10
Problema Invers modular Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>

typedef long long ll;

ll extended_gcd(ll a, ll b, ll *x, ll *y) {
    if (b == 0) {
        *x = 1; *y = 0;
        return a;
    }
    ll x1, y1;
    ll g = extended_gcd(b, a % b, &x1, &y1);
    *x = y1;
    *y = x1 - (a / b) * y1;
    return g;
}

int main() {
    FILE *fin  = fopen("inversmodular.in",  "r");
    FILE *fout = fopen("inversmodular.out", "w");

    ll a, n;
    fscanf(fin, "%lld %lld", &a, &n);

    ll x, y;
    extended_gcd(a, n, &x, &y);

    x = ((x % n) + n) % n;

    fprintf(fout, "%lld\n", x);

    fclose(fin);
    fclose(fout);
    return 0;
}