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; }
-
das ist der euklidische algorithmus.
-
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