Cod sursa(job #3298916)

Utilizator robertcd29Chira Robert-Denis robertcd29 Data 3 iunie 2025 01:50:02
Problema Invers modular Scor 30
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <stdio.h>

int inv_modular(unsigned long long a, unsigned long long n) {
    for (unsigned long long x = 1; x < n; x++) {
        if ((a * x) % n == 1) {
            return x;
        }
    }
    return -1;
}

int main(void)
{
    FILE *fin = NULL;
    FILE *fout = NULL;
    if((fin = fopen("inversmodular.in", "r")) == NULL) {
        fprintf(stderr, "Eroare la deschidere\n");
        return 1;
    }

    if((fout = fopen("inversmodular.out", "w")) == NULL) {
        fprintf(stderr, "Eroare la deschidere\n");
        fclose(fin);
        return 1;
    }

    unsigned long long a, n;

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

    unsigned long long result = inv_modular(a, n);
    if (result == -1) {
        fprintf(fout, "Nu exista\n");
    } else {
        fprintf(fout, "%llu\n", result);
    }

    fclose(fin);
    fclose(fout);
    


    return 0;
}