Cod sursa(job #3357138)

Utilizator Olariu_MarioOlariu Mario Andrei Olariu_Mario Data 6 iunie 2026 16:40:03
Problema Invers modular Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void euclid(long long a,long long b,long long *x,long long *y)
{
    if(b==0)
    {
        *x=1;
        *y=0;
        return;
    }
    long long x1,y1;
    euclid(b,a%b,&x1,&y1);
    *x=y1;
    *y=x1-(a/b)*y1;
}

int main()
{
    FILE *file = fopen("inversmodular.in", "r");
    FILE *output = fopen("inversmodular.out", "w");
    if (file == NULL)
    {
        fprintf(stderr, "Eroare deschidere fisier intrare.\n");
        return 1;
    }
    if (output == NULL)
    {
        fprintf(stderr, "Eroare deschidere fisier iesire.\n");
        fclose(file);
        return 1;
    }
    long long a,n;
    long long x,y;
    fscanf(file,"%lld %lld", &a,&n);
    euclid(a,n,&x,&y);
    long long inv=(x%n+n)%n;
    fprintf(output,"%lld\n", inv);
    return 0;
}