Python ile EBOB ve EKOK Bulma Örneği
Bu yazımızda, Python ile iki sayının EBOB (En Büyük Ortak Bölgen) ve EKOK (En Küçük Ortak Kat) değerlerini hesaplayan bir program oluşturacağız. EBOB, iki ya da daha fazla doğal sayının ortak bölenleri içerisindeki en büyük olanına, EKOK ise bu sayıların tam olarak bölünebildiği en küçük doğal sayıya denir.
Python ile EBOB ve EKOK Bulma
- Problemimi ilk çözüm yolunda if-else koşul ifadelerinden ve for döngüsünden faydalandık:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
birinciSayi = int(input("Birinci Sayıyı Giriniz : ")) ikinciSayi = int(input("İkinci Sayıyı Giriniz : ")) if (birinciSayi > ikinciSayi): kucuksayi = ikinciSayi else: kucuksayi = birinciSayi for i in range(1,kucuksayi+1): if (birinciSayi % i==0) and (ikinciSayi%i ==0): ebob = i ekok = (birinciSayi*ikinciSayi)//ebob print ("EBOB:", ebob) print ("EKOK:", ekok) |
Kodu çalıştırmak için: Trinket
- İkinci çözüm yolunda ise math modülü kullanacağız. Bu yöntem, EBOB ve EKOK hesaplama için çok daha verimli bir yöntemdir. Zira
math
modülündekigcd
fonksiyonu, iki sayının EBOB’unu hızlı bir şekilde bulmanız için Öklidyen algoritmasını kullanır. Bakınız:
1 2 3 4 5 6 7 8 9 10 |
import math birinciSayi = int(input("Birinci Sayıyı Giriniz : ")) ikinciSayi = int(input("İkinci Sayıyı Giriniz : ")) ebob=math.gcd(birinciSayi,ikinciSayi) ekok=(birinciSayi*ikinciSayi)/ebob print ("EBOB:", ebob) print ("EKOK:", ekok) |
EKOK hesaplama kısmında bölme işlemi yerine tam sayı bölmesi (//
) kullandım, bu sayede EKOK sonucu kesinlikle tam sayı olarak döner. Kodu çalıştırmak için: Trinket
- Fonksiyon kullnarak
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
def ebob_ekok_hesapla(birinciSayi, ikinciSayi): # EBOB hesaplama if birinciSayi > ikinciSayi: kucuksayi = ikinciSayi else: kucuksayi = birinciSayi for i in range(1, kucuksayi+1): if (birinciSayi % i == 0) and (ikinciSayi % i == 0): ebob = i # EKOK hesaplama ekok = (birinciSayi * ikinciSayi) // ebob return ebob, ekok birinciSayi = int(input("Birinci Sayıyı Giriniz: ")) ikinciSayi = int(input("İkinci Sayıyı Giriniz: ")) ebob, ekok = ebob_ekok_hesapla(birinciSayi, ikinciSayi) print("EBOB:", ebob) print("EKOK:", ekok) |
Bu kodda, EBOB ve EKOK hesaplamalarını ayrı bir fonksiyonda yapıyoruz. Böylece kodumuz daha temiz ve okunaklı hale geliyor. Ayrıca, EKOK hesaplamasını for döngüsünün dışına alarak kodun performansını biraz daha artırıyoruz. Kodu çalıştırmak için: Trinket
cok kötüü ahaha
bence cok güzel olmus ama bir daha olmasın olur mu?