Cod sursa(job #1762487)

Utilizator Maria_RotaruMaria Rotaru Maria_Rotaru Data 23 septembrie 2016 16:55:33
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <stdio.h>
#include <stdlib.h>
void cmmdc(int a, int b, int &x, int &y){
     if(b==0){
        x=1;
        y=0;
     }
     else{
         int x1, y1;
         cmmdc(b, a%b, x1, y1);
         x=y1;
         y=x1-(a/b)*y1;
     }
}

int main()
{   FILE *fin,* fout;
    int T, i, a, b, c, aux, a1, b1, x, y;
    fin=fopen("euclid3.in","r");
    fout=fopen("euclid3.out","w");
    fscanf(fin,"%d",&T);
    for(i=0;i<T;i++){
        fscanf(fin,"%d%d%d",&a,&b,&c);
        a1=a; b1=b;
        while(b>0){
              aux=b;
              b=a%b;
              a=aux;
        }
        if(c%a==0){
           cmmdc( a1, b1, x, y);
           fprintf(fout,"%d %d\n",x*(c/a),y*(c/a));
        }
        else
           fprintf(fout,"0 0\n");
    }
    fclose(fin);
    fclose(fout);
    return 0;
}