Cod sursa(job #3234201)

Utilizator AleX102004Alexandru Staiculescu AleX102004 Data 6 iunie 2024 23:26:09
Problema Algoritmul lui Euclid extins Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>
#include <stdlib.h>

int euclid(int a, int b, int *x, int *y){
	if(b==0){
		*x = 1;
		*y = 0;
		return a;
	}
	
	int x0,y0,d;
	d = euclid(b,a%b,&x0,&y0);
	*x=y0;
	*y=x0-(a/b) * y0;
	return d;
}



int main(){
	int a,b,c,t,d;
	int x, y;
	FILE *f,*g;
	if((f=fopen("euclid3.in","r"))==NULL){
		printf("eroare deschidere fisier\n");
		exit(1);
	}
	if((g=fopen("euclid3.out","w"))==NULL){
		printf("eroare deschidere fisier\n");
		exit(1);
	}
	fscanf(f,"%d",&t);
	for(int i=1;i<=t;i++){
		fscanf(f,"%d",&a);
		fscanf(f,"%d",&b);
		fscanf(f,"%d",&c);
		d=euclid(a,b,&x,&y);
		if(c%d==0)
			fprintf(g,"%d %d\n",x * (c/d), y * (c/d));
		else
			fprintf(g,"0 0\n");
	}
	fclose(f);
	fclose(g);
}