C# OBEB ve OKEK Hesaplama

Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde OBEB ve OKEK hesaplamayı anlatacağım. Hadi başlayalım !
Öncelikle OBEB ve OKEK’in ne olduğundan bahsedelim. OBEB, Ortak Bölenlerin En Büyüğü anlamına gelen ve matematikte bolca kullanılan, birbirinden farklı iki veya daha fazla sayıyı tam bölebilen en büyük pozitif sayıdır. OKEK ise Ortak Katların En Küçüğü anlamına gelen ve birbirinden farklı iki veya daha fazla sayının en küçük ortak katı olan pozitif tam sayıdır. Bu bilgilere göre C# ile OBEB ve OKEK hesaplayacağız.
Öncelikle Visual Studio aracılığıyla bir tane proje oluşturalım. OBEB bulmak için sayıları birbirleriyle kıyaslayacak ve büyük olanı küçük olan kadar küçülteceğiz. Her iki sayı birbirine eşit olana kadar bu işlemi tekrar edeceğiz ve iki sayı eşitlendiğinde, o sayı ilk baştaki iki sayının OBEB’idir. OKEK hesaplamak için ise matematiksel hazır bir formül var,
OKEK(a, b) = (a * b) / OBEB(a, b)
İşte bizde OKEK hesaplamak için bu formülü kullanacağız. Şimdi öncelikle kullanıcıdan 2 tane sayı alalım ve sırasıyla sayi1 ve sayi2 değişkenlerine atayalım.
Console.Write("Birinci Sayıyı Giriniz: ");
int sayi1 = Convert.ToInt32(Console.ReadLine());
Console.Write("İkinci Sayıyı Giriniz: ");
int sayi2 = Convert.ToInt32(Console.ReadLine());
OBEB hesaplamayı hem OBEB hesaplarken, hemde OKEK hesaplarken kullanacağımız için bunu ayrı bir fonksiyon ile yapalım.
static int ObebHesapla(int sayi1, int sayi2)
{
if(sayi1 == sayi2) return sayi1;
while(sayi1 != sayi2)
{
if(sayi1 > sayi2) sayi1 -= sayi2;
else if(sayi2 > sayi1) sayi2 -= sayi1;
}
return sayi1;
}
Şimdi tekrardan Main fonksiyonu içerisine dönerek OKEK hesaplamasını yapalım.
int okek = (sayi1 * sayi2) / ObebHesapla(sayi1, sayi2);
Tüm hesaplamalarımız tamamlandı, artık kullanıcıya bildirebiliriz;
Console.WriteLine("Sayıların OKEK'i: {0}\nOBEB'i: {1}", okek, ObebHesapla(sayi1, sayi2));
Evet bu dersimizde bu kadardı, yazdığımız tüm kodları daha toplu olması için aşağıya bırakıyorum;
static void Main(string[] args)
{
Console.Write("Birinci Sayıyı Giriniz: ");
int sayi1 = Convert.ToInt32(Console.ReadLine());
Console.Write("İkinci Sayıyı Giriniz: ");
int sayi2 = Convert.ToInt32(Console.ReadLine());
int okek = (sayi1 * sayi2) / ObebHesapla(sayi1, sayi2);
Console.WriteLine("Sayıların OKEK'i: {0}\nOBEB'i: {1}", okek, ObebHesapla(sayi1, sayi2));
}
static int ObebHesapla(int sayi1, int sayi2)
{
if(sayi1 == sayi2) return sayi1;
while(sayi1 != sayi2)
{
if(sayi1 > sayi2) sayi1 -= sayi2;
else if(sayi2 > sayi1) sayi2 -= sayi1;
}
return sayi1;
}
Tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.