Cod sursa(job #2019559)

Utilizator titisportivuChiornita Traian - Adrian titisportivu Data 8 septembrie 2017 00:50:04
Problema Algoritmul lui Euclid extins Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>

void BEZOUT (int a, int b, int *alpha, int *beta, int *cmmdc)
{
    if (b == 0 )
    {
        *alpha = 1;
        *beta = 0;
        *cmmdc = a;
    }
    else
    {
        int x, y;
 
        BEZOUT (b, a % b, &x, &y, cmmdc);
        
        *alpha = y;
        *beta = x - (a / b) * y;
    }
}

int main ()
{
    int lines, A, B, C;

    freopen ("euclid2.in", "r", stdin);
    freopen ("euclid2.out", "w", stdout);

    scanf ("%d", &lines);
    for ( ; lines; --lines)
    {
        scanf ("%d %d %d", &A, &B, &C);

        int alpha, beta, D;

        BEZOUT (A, B, &alpha, &beta, &D);

        if (C % D)
            printf("0 0\n");
        else
            printf("%d %d\n", alpha * (C / D), beta * (C / D));
    }   
    return 0;
}