Cod sursa(job #3233172)

Utilizator danut007Razvan Mns danut007 Data 2 iunie 2024 18:14:13
Problema Algoritmul lui Euclid extins Scor 50
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>
#include <stdlib.h>

void euclidExtins(int a, int b, int *div, int *x, int *y){

    if (b == 0)
    {
        *div = a;
        *x = 1;
        *y = 0;
    }
    else
    {
        euclidExtins(b, a % b, div, x, y);
        int aux = *x;
        *x = *y;
        *y = aux - *y * (a/b);
    }
}

int main()
{
    int a, b, c, n, div;
    int x, y;
    FILE* in = fopen("euclid3.in", "r");
    FILE* out = fopen("euclid3.out", "w");
    fscanf(in, "%d", &n);
    while (n > 0) {
        fscanf(in, "%d %d %d", &a, &b, &c);
        euclidExtins(a, b, &div, &x, &y);
        if (c % div != 0)
            fprintf(out,"0 0\n");
        else
            fprintf(out, "%d %d\n", x * c / div, y * c / div);
        n--;
    }
    fclose(in);
    fclose(out);
    return 0;
}