#include <stdio.h>

int main(void)
{
	long ZahlA, ZahlB, Q=0,A=0,AV,AVV,R=0,RV=0,RVV=1, S=0, SV=1,SVV=0;
 
	printf("Dieses Programm bestimmt den ggT zweier natuerlicher Zahlen.\n\
Ausserdem gibt es den ggT als ganzzahlige Kombination dieser beiden Zahlen an.\n\
Geben Sie bitte Ihre erste natuerliche Zahl ein: "); 
 
	scanf("%li",&ZahlA);
 
	printf("Geben Sie nun bitte Ihre zweite natuerliche Zahl ein: ");  
  
	scanf("%li",&ZahlB); 
 
	if(ZahlA<=0 || ZahlB<=0)
	{
		printf("Programm wird wegen fehlerhafter Eingabe beendet.\n");  
		return(1);
	}
 
	AV=ZahlB;
	AVV=ZahlA;
 
	do
	{
		A= AVV % AV;
		Q=(AVV-A)/AV;
		R=RVV-RV*Q;
		S=SVV-SV*Q;
		AVV=AV;  AV=A;  A=0;
		SVV=SV;  SV=S;  S=0;
		RVV=RV;  RV=R;  R=0;
	}while(AV!=0);  
 
	printf("Der ggT von %li und %li lautet: %li.\n",ZahlA,ZahlB,AVV);  
	printf("Wir haben folgende Darstellung: %li = %li * %li + %li * %li.\n\n", AVV, RVV, ZahlA, SVV, ZahlB);
 
	return(0);
  
}

