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.


0 yorum

Bir cevap yazın

Avatar placeholder

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

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