C :: Aufgabe #62
3 Lösungen
Größter gemeinsamer Teiler
Anfänger - C
von hobeditz
- 21.09.2014 um 11:51 Uhr
Entwickeln Sie ein Programm, welches den größten gemeinsamen Teiler zweier Zahlen ermittelt. Die Zahlen sollen vom Nutzer selber bestimmt werden.
Zitat:
Tipp:
Der euklidische Algorithmus könnte helfen.
Lösungen:
/**************************************
* ggt.c groesster gemeinsamer Teiler
**************************************/
#include <stdio.h>
unsigned ggt(unsigned p, unsigned q) {
if (p == 0)
return q;
while (q > 0) {
if (p > q)
p = p-q;
else
q = q-p;
}
return p;
}
int main() {
unsigned z1, z2;
printf("Erste Zahl : ");
scanf("%u", &z1);
printf("Zweite Zahl: ");
scanf("%u", &z2);
printf("Der ggT ist %u\n", ggt(z1, z2));
return 0;
}
int DoMath(int a, int b) {
int gross, klein;
if (a > b) {
groß = a;
klein = b;
}
else {
gross = b;
klein = a;
}
for (int i = 1; i < klein; i++)
if (klein % i == 0)
if (gross % (klein / i) == 0)
return klein / i;
return 1;
}
#include <stdio.h>
int ggt_berechnen(int zahl1, int zahl2)
{
int rest, ggt;
rest=0;
do {
ggt= rest;
rest = zahl1 % zahl2;
zahl1 = zahl2;
zahl2 =rest;
}while(rest !=0);
return ggt;
}
int main()
{
int zahl1, zahl2, ggT, rest, temp;
printf("Bitte gebe die 1. Zahl ein: ");
scanf("%d", &zahl1);
printf("Bitte gebe die 2. Zahl ein: ");
scanf("%d", &zahl2);
//Umsortieren zahl1 muss die größere Zahl sein
if (zahl1<zahl2) {
temp=zahl2;
zahl2=zahl1;
zahl1=temp;
}
printf("\n\nDer größte gemeinsame Teiler ist: %d\n",ggt_berechnen(zahl1, zahl2));
}
