Cod sursa(job #3233153)

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

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

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

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);
        div = euclidExtins(a, b, &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;
}