Python :: Aufgabe #60
4 Lösungen

Größter gemeinsamer Teiler
Anfänger - Python
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:

z1 = input('1. Zahl? ') z2 = input('2. Zahl? ') z1 = int(z1) z2 = int(z2) if z1 == 0: print(z2) else: while z2 != 0: if z1 > z2: z1 = z1 - z2 else: z2 = z2 - z1 print('Der größte gemeinsame Teiler ist ' + str(z1))

def ggt(a, b): while b!=0: c=a%b a=b b=c return a while True: a = int(raw_input("Geben Sie Zahl 1 ein:")) b = int(raw_input("Geben Sie Zahl 2 ein:")) print "Der größte gemeinsame Teiler ist:",ggt(a,b)

def ggT(x, y): z = x % y if z == 0: return y return ggT(y, z) print ggT(input("Zahl 1: "), input("Zahl 2: "))

def eingabe(): global x global y x = int(input("Erste Zahl: ")) y = int(input("Zweite Zahl: ")) if x > y: x, y = y, x def teiler_berechnen(x, y): global x_teiler global y_teiler x_teiler = [] y_teiler = [] for m in range(2, x+1): if x % m == 0: x_teiler.append(m) for n in range(2, x+1): if y % n == 0: y_teiler.append(n) def ggt_finden(x_teiler, y_teiler): global ggt global gemeinsame_teiler set1 = set(x_teiler) set2 = set(y_teiler) set3 = set1.intersection(set2) gemeinsame_teiler = list(set3) if gemeinsame_teiler != []: gemeinsame_teiler.sort() ggt = gemeinsame_teiler[-1] else: ggt = 0 def ausgabe(ggt, gemeinsame_teiler): if gemeinsame_teiler == []: print("Die zwei Zahlen haben keinen gemeinsamen Teiler") else: print(str(ggt)) eingabe() teiler_berechnen(x, y) ggt_finden(x_teiler, y_teiler) ausgabe(ggt, gemeinsame_teiler)