Cod sursa(job #3132822)

Utilizator stefoni.mirceaStefoni Mircea stefoni.mircea Data 23 mai 2023 22:26:25
Problema Algoritmul lui Euclid extins Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>

int euclid(int *x, int *y, int a, int b)
{
    if (b == 0)
    {
        *x = 1;
        *y = 0;
        return a;
    }
    else
    {
        int aux, auy;
        int d = euclid(&aux, &auy, b, a % b);
        *x = auy;
        *y = aux - (a / b) * auy;
        return d;
    }
}

int main(void)
{
    int a, b, c, n;
    int x, y;

    FILE *f, *g;

    f = fopen("euclid3.in", "r");
    g = fopen("euclid3.out", "w");

    fscanf(f, "%d", &n);

    for (int i = 0; i < n; i++)
    {
        fscanf(f, "%d %d %d", &a, &b, &c);
        int d = euclid(&x, &y, a, b);
        if (c % d != 0)
        {
            fprintf(g, "0 0\n");
        }
        else
        {
            fprintf(g, "%d %d\n", x * (c / d), y * (c / d));
        }
    }

    fclose(f);
    fclose(g);

    return 0;
}