Python :: Aufgabe #51

3 Lösungen Lösungen öffentlich

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)

Lösungen:

vote_ok
von jigga (2880 Punkte) - 25.08.2015 um 17:22 Uhr
Quellcode ausblenden Python-Code
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, ")")
vote_ok
von ZRX88 (2030 Punkte) - 28.11.2016 um 21:34 Uhr
Quellcode ausblenden Python-Code
""" 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)
vote_ok
von Mot_Sonne (800 Punkte) - 02.10.2017 um 20:51 Uhr
Quellcode ausblenden Python-Code
#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)+')')