Bilgisayar kullanmazsak: a,b,c Pisagor uclusu oldugundan (a,b,c)=(s2−t2,2st,s2+t2) olacak sekilde s>t pozitif tam sayilari vardir. Bu durumda 1000=a+b+c=2s(s+t) yani s(s+t)=500 bulunur. s>t oldugunu kullanirsak t≤15 ve s≥16 bulunur. Dolayisiyla s=20 ve t=5 olmali. Bu durumda a⋅b⋅c=2st(s4−t4)=31875000 olur. Bilgisayar da kullanirsak:
print("Istenen sayi 31875000.")
Mathematica ile cozum:
Times @@ First@ Values@Solve[{a^2 + b^2 == c^2, a + b + c == 1000}, {a, b, c}, PositiveIntegers] 31875000
Veya
Times @@@ Values@FindInstance[{a^2 + b^2 == c^2, a + b + c == 1000}, {a, b, c}, PositiveIntegers] {31875000}
Hocam @ operatoru ne ise yariyor ?
@
Python ile çözümü şöyledir:
n = int(input("Üçgenin çevresi olan tam sayıyı giriniz:\n")) for a in range(1,n//2): for b in range(1,a): c = n - (a+b) if c**2 == a**2 + b**2: print("Pisagor üçlüsü {},{},{} sayılarıdır.".format(a,b,c)) print("İstenen çarpım {} olur.".format(a*b*c))
Kodu çalıştıdığınızda n için bir sayısı girmeniz istenecek. Üçgenin çevresini belirten bu değere 1000 yazdığınızda çıktımız şöyle görünür:
Pisagor üçlüsü 375, 200, 425 sayılarıdır.
İstenen çarpım 31875000 olur.
Not: n=1000 için bu kodun çalışma süresi ortalama 3.4 sn'dir.