Euklididscher Algorithmus Python |
Dr.Java
Foren As
![](images/star.gif) ![](images/star.gif) ![](images/star.gif) ![](images/star.gif)
![images/avatars/avatar-71.jpg](images/avatars/avatar-71.jpg)
Dabei seit: 21.03.2016
Beiträge: 99
![](images/spacer.gif) |
|
Euklididscher Algorithmus Python |
![Zum Anfang der Seite springen Zum Anfang der Seite springen](images/goup.gif) |
Hallo. Ich habe ein Programm geschrieben das in Python mit Hilfe des iterativen,euklidischen Algorithmus den kleinsten gemeinsame Nenner zweier Zahlen berechnet.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
def gcd(m,n):
if type(m)!=int or type(n)!=int or m<0 or n<0:
return None
else:
while n!=0:
h=m%n
m=n
n=h
return m |
|
Ich würde jetzt gerne eine Funktion aufstellen die mithilfe von input ,den kleinsten ,gemeinsamen Nenner für beliebig,viele positive Zahlen ermittelt und mit print ausgibt .Es soll dann solange laufen bis man eine Null eingibt die für die Berechnung dann nicht mehr berücksichtigt wird.
Wäre sowas machbar,wenn ja wie?
Mein Ansatz soweit:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
def gcd(m,n):
if type(m)!=int or type(n)!=int or m<0 or n<0:
return None
else:
while n!=0:
h=m%n
m=n
n=h
return m
while (m !=0):
input("Input nat. number (or 0 to quit)):"
if m=0:
print("GCD":42)
|
|
Danke schonmal und lg
__________________
Zitat: |
"Ich glaube, es gibt einen weltweiten Bedarf an vielleicht fünf Computern."
-Thomas Watson |
|
|
10.11.2016 18:48 |
|
|
|
Das Einlesen der Zahlen gehört nicht mehr in gcd, wie es deine Einrückung impliziert.
gcd(a,b,c) = gcd(gcd(a,b),c), das heißt du liest die erste Zahl ein und für jede weitere ersetzt du sie durch das Ergebnis von bisherigem ggT und neuer Eingabe. Ich habe es jetzt nicht ausprobiert, aber ggT(0, n) sollte n ergeben. Also musst du die erste Eingabe nicht einmal gesondert behandeln.
__________________ Syntax Highlighting fürs Board (Link)
|
|
10.11.2016 20:08 |
|
|
Dr.Java
Foren As
![](images/star.gif) ![](images/star.gif) ![](images/star.gif) ![](images/star.gif)
![images/avatars/avatar-71.jpg](images/avatars/avatar-71.jpg)
Dabei seit: 21.03.2016
Beiträge: 99
![](images/spacer.gif) |
|
Danke für deine Antwort.
Verstehe ich das richtig ,du meinst man sollte eher auf jeden Fall ne separate Funktion erstellen die den Algorithmus inklusive hat?
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
def cli_gcd():
if type(m)!=int or type(n)!=int or m<0 or n<0:
return None
else:
while n!=0:
h=m%n
m=n
n=h
return m
while (m !=0):
input("Input nat. number (or 0 to quit)):"
if m=0:
print("GCD":42) |
|
So vielleicht in etwa?
lg
__________________
Zitat: |
"Ich glaube, es gibt einen weltweiten Bedarf an vielleicht fünf Computern."
-Thomas Watson |
|
|
11.11.2016 10:42 |
|
|
Dr.Java
Foren As
![](images/star.gif) ![](images/star.gif) ![](images/star.gif) ![](images/star.gif)
![images/avatars/avatar-71.jpg](images/avatars/avatar-71.jpg)
Dabei seit: 21.03.2016
Beiträge: 99
![](images/spacer.gif) |
|
Ah so ,okay daran hab ich nicht gedacht .Ist das die neue Funktion ,die gibt dann den enter natural number -Befehl aus?
lg
__________________
Zitat: |
"Ich glaube, es gibt einen weltweiten Bedarf an vielleicht fünf Computern."
-Thomas Watson |
|
|
11.11.2016 11:14 |
|
|
Dr.Java
Foren As
![](images/star.gif) ![](images/star.gif) ![](images/star.gif) ![](images/star.gif)
![images/avatars/avatar-71.jpg](images/avatars/avatar-71.jpg)
Dabei seit: 21.03.2016
Beiträge: 99
![](images/spacer.gif) |
|
Ach so,ok,ah, ich glaube ich habs jetzt.
Danke für deine Mühen.
lg
__________________
Zitat: |
"Ich glaube, es gibt einen weltweiten Bedarf an vielleicht fünf Computern."
-Thomas Watson |
|
|
11.11.2016 11:53 |
|
|
|