C :: Aufgabe #62

3 Lösungen Lösungen öffentlich

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:

vote_ok
von devnull (8870 Punkte) - 28.11.2014 um 21:06 Uhr
Quellcode ausblenden C-Code
/**************************************
 * 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;
}
vote_ok
von DBqFetti (2480 Punkte) - 07.02.2015 um 16:10 Uhr
Quellcode ausblenden C-Code
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;
}
vote_ok
von kathleenw (3600 Punkte) - 03.07.2020 um 09:10 Uhr
Quellcode ausblenden C-Code
#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));
}