1x+1y+1z=1 denlemini soyle yazalim:
xz+xy+yzxyz=1, Ama iki sayiyi birbirine boluyorsam ve cevap 1 geliyorsa bu o iki sayinin birbirine esit oldugu anlamina gelir, Yani kisacasi virgullu sayilar ile ugrasma (bolme islemi hem yavas hem de icsel olarak hatali) yerine cozum bulma kriterinizi xz+xy+yz==xyz diye degistirebilirsiniz.
Duzenleme sonrasi: Bolme islemi icsel olara hatali dan kastim virgullu sayilarin bilgisayardaki gosteriminin yarattigi problemler idi. Su ve su sorulara bir bakin isterseniz.
@DoganDonmez hocanin da yorumu burada onemli yani (2,4,4), (4,2,4),(4,4,2) gibi permutasyonlari terar tekrar hesaplamak istemiyoruz bilgisayara yazik.
x≥y≥z diye dusunursek bu permutasyonlari elimine ederiz. ≥ onemli burada eger > kullansaydik (3,3,3) uclusunu kaciracatik. Bu sayede progamimir daha hizli calisacak (Ne kadar daha hizli?).
Hepsini birlestirirsek soyle bir python kodu yazabiliriz, ((xy+xz+yz) paranteze aldim daha az carpma islemi olsun diye cok da gerekli degil.)
for x in range(1,101):
for y in range(1,x+1):
for z in range(1,y+1):
if x*(y + z) + y*z == x*y*z:
print((x,y,z))