Größte Zahl,die if - erfüllt.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Klausi
User
Beiträge: 2
Registriert: Freitag 9. Oktober 2015, 14:58

Hallo Leute,

Ich habe das Vergnügen seit diesem Schuljahr mich im Informatikkurs mit Phyton auseinanderzusetzen. Eine Aufgabe, an der ich hänge,soll den größten gemeinsamen Teiler zweier positiver ganzer Zahlen berechnen. Ich war in der Lage dies mit dem Euklid -Algorhitmus zu lösen, allerdings suche ich noch eine andere Variante, die auf einem Vergleichen der Teilmengen beruht. Hier mein Lösungsansatz:

Code: Alles auswählen

a= float(input("Geben sie a ein: "))
b= float(input("Geben sie b ein: "))
Tester=0
while b>0:
 Tester=Tester+1
 if (b%Tester==0) and(a%Tester==0)and (Tester<=a):
   print(Tester)
   break
Diser Ansatz beruht auf dem Prinzip der Vergleichen von Teilermengen. Allerdings wird im jetzigen Stand des Programms der kleinste gemeinsame Teiler berechnet, der immer 1 ist. Nun suche ich nach einer Möglichkeit, die größte Zahl zu finden, die die genannten Bedinungen erfüllt. Leider konnte ich trotz stundenlanger Recherche bislang nichts dazu finden.
Im Vorraus danke für die Hilfe !
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Willkommen zu Python und im Forum!

Was du suchst, gibt es nicht. Wird die Bedingung erfüllt wird die passende Suite ausgefuehrt und damit beim ersten Treffer abgebrochen. Aber du kannst deine Herangehensweise aendern und statt bei 1 bei einer anderen Zahl anfangen.
Alternativ kannst du erst alle Treffer finden und dann den groessten ausgeben.
BlackJack

@Klausi: Die Eingaben in Gleitkommazahlen umzuwandeln wenn man dann Tests macht die eigentlich nur mit ganzen Zahlen Sinn machen ist vielleicht keine so gute Idee.

Wenn man ganze Zahlen in einer Reihenfolge braucht und sowohl die Unter- als auch die Obergrenze kennt, würde man auch eher eine ``for`` statt einer ``while``-Schleife verwenden.
Klausi
User
Beiträge: 2
Registriert: Freitag 9. Oktober 2015, 14:58

erstmal danke für eure Antworten.
@cofi Mit welchem Befehl kann ich alle Treffer finden und anzeigen lassen ?
BlackJack

@Klausi: Überleg doch mal warum Dein Code das jetzt nicht macht und nur den ersten Treffer anzeigt.
Antworten