Cod sursa(job #3322773)

Utilizator MateiDiaconuDiaconu Matei Stefan MateiDiaconu Data 15 noiembrie 2025 17:09:07
Problema Invers modular Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>
#include <stdlib.h>


void euclid(int a, int b, int *x, int *y){
    if(b == 0){
        *x = 1;
        *y = 0;
    }
    else{
        int x0, y0;
        euclid(b, a % b, &x0, &y0);
        *x = y0;
        *y = x0 - (a / b) * y0;
    }
}

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

    int a, n, x, y;

    fscanf(fin, "%d%d", &a, &n);

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

    if(x < 0){
        x += n;
    }

    fprintf(fout, "%d", x);

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