Python OBEB OKEK Fonksiyonu Nasıl Yapılır

Python OBEB OKEK fonksiyonunu yazacağız arkadaşlar. Python dilinde ne kadar basit ve yalın olduğu göreceğiz. Daha önce iki sayının OBEB ve OKEK değerlerini bulan fonksiyonu C# platformunda yazmıştık. (Bkzn. C# – OBEB OKEK Fonksiyonu) Aşağıdaki C# kodunu hatırlayalım.

// www.kaizen40.com
 
using System;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("İlk sayıyı girin:");
            int sayi1 = Int32.Parse(Console.ReadLine());
 
            Console.WriteLine("İkinci sayıyı girin:");
            int sayi2 = Int32.Parse(Console.ReadLine());
 
            int OKEK = 0, OBEB = 0, k;
 
            if (sayi1 < sayi2) { k = sayi2; } else { k = sayi1; }   // büyük sayıyı al
 
            for (; k <= sayi1 * sayi2; k++)                         // OKEK' i hesapla
            {
                if (k % sayi1 == 0 && k % sayi2 == 0)
                {
                    OKEK = k; break;        // iki sayıyı çarp birbirlerine bölümü tam ise kır
                }
            }
 
            if (sayi1 > sayi2) { k = sayi2; } else { k = sayi1; }   // küçük sayıyı al
 
            for (; k > 0; k--)                      // OKEK' i hesapla
            {
                if (sayi1 % k == 0 && sayi2 % k == 0)
                {
                    OBEB = k; break;        // iki sayıyı birbirine böl, bölüm sıfır ise kır
                }
            }
 
            Console.WriteLine("OBEB(" + sayi1 + "," + sayi2 + ") = " + OBEB);
            Console.WriteLine("OKEK(" + sayi1 + "," + sayi2 + ") = " + OKEK);
 
            Console.WriteLine("Çıkmak için bir tuşa basın...");
            Console.ReadLine();
        }
    }
}

Python Dilinde OBEB ve OKEK değerlerini bulan fonksiyonu yazmak istersek aşağıdaki fgibi basit ve yalın olmaktadır.

sayi1 = int(input("Bir sayi girin: "))
sayi2 = int(input("Ýkinci saiyi girin: "))
 
OKEK = 0
OBEB = 0
k = 0
 
if sayi1 < sayi2:                   # büyük sayıyı al
    k = sayi2
else:
    k = sayi1 
 
while k <= sayi1 * sayi2:            # OKEK' i hesapla
    if k % sayi1 == 0 and k % sayi2 == 0:
         OKEK = k
         break                      # iki sayıyı çarp birbirlerine bölümü tam ise kır
    k = k +1

if sayi1 > sayi2:
    k = sayi2
else:
    k = sayi1                       # küçük sayıyı al
 
while k > 0:                        # OKEK' i hesapla
    if sayi1 % k == 0 and sayi2 % k == 0:
        OBEB = k
        break                       # iki sayıyı birbirine böl, bölüm sıfır ise kır
    k = k - 1
 
print('OBEB({}, {}):'.format(sayi1, sayi2), OBEB)
print('OKEK({}, {}):'.format(sayi1, sayi2), OKEK)

Gördüğünüz gibi C# dilinde iki satırda kullanıcıdan bilgi alırken, Python dilinde tek satırla bu işi çözebiliyoruz. C# dilinde for döngüsüyle yaptığımız işi burada while döngüsü ile yapıyoruz. C#’ ta da while döngüsü ile de yapabilirdik. If yapılarında C#’ ta ve operatörünü && olarak kullanırken, Python dilinde ‘and’ olarak daha anlaşılır bir şekilde kullanıyoruz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.