Cod sursa(job #1317224)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 14 ianuarie 2015 18:52:17
Problema Algoritmul lui Euclid extins Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
#include <stdlib.h>
void euclid(int a,int b,int *x,int *y){
     int x0, y0;
    if(b==0){
        *x=1;
        *y=0;
        return ;
    }
    euclid(b, a%b, &x0, &y0);
    *x=y0;
    *y=x0-((a/b)*y0);
}
int main(){
    FILE*fi,*fout;
    int t,i,a,b,c,x,y,a1,b1,r;
    fi=fopen("euclid3.in" ,"r");
    fout=fopen("euclid3.out" ,"w");
    fscanf(fi,"%d" ,&t);
    for(i=0;i<t;i++){
        fscanf(fi,"%d%d%d" ,&a,&b,&c);
        a1=a;b1=b;
        while(b1>0){
            r=a1%b1;
            a1=b1;
            b1=r;
        }
        if(c%a1>0)
            fprintf(fout,"0 0\n");
        else{
            euclid(a/a1,b/a1,&x,&y);
            fprintf(fout,"%d %d\n", x*(c/a1), y*(c/a1));
        }
    }
    return 0;
}