Cod sursa(job #1176502)

Utilizator hrazvanHarsan Razvan hrazvan Data 26 aprilie 2014 10:09:18
Problema Algoritmul lui Euclid extins Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.75 kb
#include <stdio.h>

int cmmdc ( int a, int b, int *x, int *y ){
    if ( b == 0 ){
        *x = 1;
        *y = 0;
        return a;
    }
    int x1, y1, rez = cmmdc( b, a % b, &x1, &y1 );
    *x = y1;
    *y = x1 - ( a / b ) * ( y1 );
    return rez;
}

int main()
{
    FILE *in = fopen ( "euclid3.in", "r" );
    FILE *out = fopen ( "euclid3.out", "w" );
    int n;
    fscanf ( in, "%d", &n );
    int i, a, b, c,x, y, z, pr;
    for ( i = 0; i < n; i++ ){
        fscanf ( in, "%d%d%d", &a, &b, &c );
        z = cmmdc ( a, b, &x, &y );
        pr = c / z;
        if ( c % z != 0 )   fprintf ( out, "0 0\n" );
        else    fprintf ( out, "%d %d\n", x * pr, y * pr );
    }
    fclose ( in );
    fclose ( out );
    return 0;
}