Python :: Aufgabe #51
3 Lösungen

Bedingtes Tripel (Mathematisches Problem)
Anfänger - Python
von bibir
- 03.09.2014 um 09:15 Uhr
Ein Tripel besteht aus 3 integer-Werten, die in diesem Fall sollen noch folgende Eigenschaften erfüllt werden:
a < b < c
a² + b² = c²
a + b +c = n (n ist der Übergabeparameter)
Erstelle ein Programm, das eine beliegibe ganze Zahl als Übergabeparameter einliest und die dazugehörigen Tripel ausgibt
Beispiele:
n=30 => (5/12/13)
n=252 => (36/105/111), (56/90/106), (63/84/105)
a < b < c
a² + b² = c²
a + b +c = n (n ist der Übergabeparameter)
Erstelle ein Programm, das eine beliegibe ganze Zahl als Übergabeparameter einliest und die dazugehörigen Tripel ausgibt
Beispiele:
n=30 => (5/12/13)
n=252 => (36/105/111), (56/90/106), (63/84/105)
Lösungen:

zahl = int(input("Zahl eingeben: ")) for a in range(int(zahl/2)): for b in range(a,int(zahl/2)): for c in range(b,int(zahl/2)): if zahl == a + b + c and c*c == a*a + b*b and c > b > a: print("(", a, "/", b, "/", c, ")")

""" bedingtes Tripel """ import math # x = input('Gib parameter an.') x = 252 result = [] def test(a,b,c,x): return a + b + c == x and math.pow(a,2) + math.pow(b,2) == math.pow(c,2) for c in range(x,3,-1): for b in range(c,2,-1): for a in range(b,1,-1): if test(a,b,c,x): result.append([a,b,c]) print(result)

#Tripel n=int(input("Bitte eine natürliche Zahl eingeben:")) L=[i for i in range(1,n+1)] for i in L: for j in L: for k in L: if i+j+k==n and i<j<k and i**2+j**2==k**2: print('('+str(i)+'/'+str(j)+'/'+str(k)+')')