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)+')')
