Cod sursa(job #1762491)

Utilizator mihai.alphamihai craciun mihai.alpha Data 23 septembrie 2016 17:02:41
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <stdio.h>
#include <stdlib.h>
int cm;
void cmmdc(int a,int  b, int &x, int &y)  {
if(b == 0){x = 1;y = 0;cm = a;}
else  {
        int x1, y1;
    cmmdc(b, a%b, x1, y1);
    x = y1;
    y = x1 - (a / b) * y1;

}

}


//void euclid(int a, int b, int *d, int *x, int *y)
//{
//    if (b == 0) {
//        *d = a;
//        *x = 1;
//        *y = 0;
//    } else {
//        int x0, y0;
//        euclid(b, a % b, d, &x0, &y0);
//        *x = y0;
//        *y = x0 - (a / b) * y0;
//    }
//}
int main(){
    FILE *fin = fopen("euclid3.in", "r"),  *fout = fopen("euclid3.out", "w");
    int a, b, c, i , t;
    fscanf(fin,"%d", &t);
    for(i = 0;i < t;i++)  {
    fscanf(fin, "%d%d%d", &a, &b, &c);
    int x, y;
    x = 1;
    y = 0;
    cmmdc(a, b, x, y);
    //euclid(a, b,c, x, y);
    //printf("%d %d %d %d  ", c, cm, x, y);
    if(c % cm != 0)
        printf("0 0");
    else{
        x = x * (c / cm);
        y = y * (c / cm);
        fprintf(fout, " %d %d", x, y);

    }
    }
    fclose(fin);
    fclose(fout);
    return 0;
}