GGt zwei Zahlen



  • #include<iostream.h>
    int main()
    {
    	int x,a;
    	cout << "erste Zahl eingeben " << endl;
    	cin>>x;
    	int y;
    	cout << " Zweite Werte eingeben" << endl;
    	cin>>y;
    	a=x%y;
    	if(a==0)
    		cout << " Der ggt ist also " << y << endl;
    	else 
    	{
    		while (a!=0)
    		{
    			x=y; // von hier ist mir nicht ganz klar ??? :rage: 
    			y=a;// :rage: 
    			a=x%y;// :rage: 
    		}
    		cout << " Der ggt ist " << y << endl;
    	}
    	return 0;
    }
    
    das ist die Musterlösung und die verstehe ich nicht genau ich habe das selbe arbeit gemacht aber ich habe FKT benutzt und es funktioniert aber ich ahbe diese Programm nicht ganz versanden wie es funktioniert 
    was ich gemacht habe ist so:
    #include <iostream.h>
    int ggT(int,int);
    int ggT( int x ,int y)
    {
    	int a;
    	a =(x<y)?x:y;
    	while ((x%a)||(y%a))
    		--a;
    	return a;
    }
    int main ()
    {
    	int x,y,Erg;
    	cout << "erste Wert " << endl;
    	cin >>x;
    	cout << " Zweite wert " << endl;
    	cin >>y;
    	Erg = ggT(x,y);
    	if(Erg!=1)
    		cout << "ggt von " << x << "und" << y <<" ist " << Erg << endl;
    	else
    		cout << " Da gibt keine ggt fuer " << x << " und " << y << endl;
    	return 0;
    }
    




  • Wenn du den Algorithmus nicht verstehst, dann rechne einfach mal per Hand
    ein Beispiel, und lies dann deine Rechnung noch mal von unten nach oben durch.
    Als Beispiel aber keine zu kleinen Zahlen, sonern besser eine 4 und eine 3 Stellige
    Zahl, damit man dann auch was sieht 🙂


Anmelden zum Antworten