Ebob-Ekok bulma algoritması;

Ocak 23, 2020 0 Yazar: alikperislam
#ekok bulma algoritması:
def ekok(a,b):
    i = 2 #ekok bulurken önce 2'ye bölerek başlarız
    ekok = 1 #ekok bulurken çarpma işlemi ile ilerleyeceğimiz için 1 sayısı ile başladım
    while True:
        if (a % i == 0 and b % i == 0): #a ve b i'ye tam bölünürse
            ekok *= i
            a //= i #i'ye bölümündeki tam kısım
            b //= i #i'ye bölümündeki tam kısım
        elif (a % i == 0 and b % i != 0):
            ekok *= i
            a //= i
        elif (a % i != 0 and b % i == 0):
            ekok *= i
            b //= i
        else:
            i += 1
        if (a == 1 and b == 1):
            break
    return ekok
while True:
    a = input('Ekok için gerekli 1.sayıyı giriniz, çıkmak için q\'ya basınız:\n')
    if (a == "q"):
        print("Program sonlandırılıyor...")
        break
    b = input('Ekok için gerekli 2.sayıyı giriniz, çıkmak için q\'ya basınız:\n')
    if (b == "q"):
        print("Program sonlandırılıyor...")
        break
    a = int(a)
    b = int(b)
    print("{} ve {} sayılarının ekokları {} sayısıdır.".format(a,b,ekok(a,b)))

#ekok bulma pratik yol:
a=int(input("a sayısını giriniz :"))
b=int(input("b sayısını giriniz :"))
if a > b:
    if a % b == 0:
        print("ekok = ", a)
    elif a % b != 0:
        print("ekok = ", a * b)
elif b > a:
    if b % a == 0:
        print("ekok = ", b)
    elif b % a != 0:
        print("ekok = ", a * b)


#ebob bulma:
def obeb(sayi1, sayi2):
    for i in range(int((sayi1 + sayi2) / 2), 0, -1):
        if sayi1 % i == 0 and sayi2 % i == 0:
            break
    return i


print(obeb(36, 78))