Python ile EBOB ve EKOK Bulma
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.
Programımızı kodlarken önce iki sayının EBOB’unu bulmak için 1’den küçük olan sayıya kadar olan değerleri kontrol edip her iki sayının da ortak bölenlerini bulacağız. En büyük ortak böleni ise EBOB olarak alacağız. EKOK’u ise iki sayının çarpımının EBOB’larına bölümüyle bulacağız. Bu yüzden önce EBOB’u bulup ardından EKOK’u hesaplayacağız.
1. Problemimi ilk çözüm yolunda “if-else” koşul ifadelerinden ve “for” döngüsünden faydalandım.
# Kullanıcıdan sayilari alma
sayi1 = int(input("Birinci sayiyi girin: "))
sayi2 = int(input("Ikinci sayiyi girin: "))
# Kucuk sayiyi bulma
if sayi1 > sayi2:
kucuk = sayi2
else:
kucuk = sayi1
# EBOB'u bulmak icin dongu
for i in range(1, kucuk + 1):
if sayi1 % i == 0 and sayi2 % i == 0:
ebob = i
# EKOK'u hesaplama
ekok = (sayi1 * sayi2) // ebob
# Sonuclari ekrana yazdirma
print(f"EBOB: {ebob}")
print(f"EKOK: {ekok}")
İkinci çözüm yolunda ise “math” modülü kullandım. Bu yöntem, EBOB ve EKOK hesaplama için çok daha verimli bir yöntemdir. Zira math
modülündeki gcd
fonksiyonu, iki sayının EBOB’unu hızlı bir şekilde bulmanız için Öklidyen algoritmasını kullanır. Bakınız:
import math
# Kullanıcıdan sayıları alma
sayi1 = int(input("Birinci sayıyı girin: "))
sayi2 = int(input("İkinci sayıyı girin: "))
# EBOB'u hesaplama (math.gcd ile)
ebob = math.gcd(sayi1, sayi2)
# EKOK'u hesaplama
ekok = (sayi1 * sayi2) // ebob
# Sonuçları ekrana yazdırma
print(f"EBOB: {ebob}")
print(f"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.
cok kötüü ahaha
bence cok güzel olmus ama bir daha olmasın olur mu?