selamlar,

iki sayımız olsun mesela 18 ve 45;

önce ne yapacağımzdan bahsedelim :

a*b=okek*obeb olduğundan dolayı bi tanesini bulup diğerini bu formülden bulacaz.

Peki ama hangisini? :

okek’i bulmak daha kolay :

bunların okek’i 90 ya, bilgisayara nasıl bulduracaz peki bunu :

90 = 18 * 5 = 45 * 2 demek ya, yani iki sayının da belirli bir katı olacak okek.

Programa aynen şunu diyecez, büyük sayıyı al(45), sonra bak bakalım verilen iki sayıya da kalansız bölünebiliyor mu? cevap hayırsa büyük sayıyı bir kat arttır(90), şimdi iki sayıya kalansız bölünebiliyor mu? bölünüyorsa aha okek’i bulduk. Basit di mi?

şimdi ben C için anlatıyorum, pascal ve basic içini de sonra eklerim belki.

Yapmamız gerekenler ->

1) bölme işleminde kalanı nasıl buluruz?

tabi ki mod’la. mesela 13ü 10′a böldüğümüzde kalan kaçtır, 3. yani 13 = 3 (mod 10). C’de bunu yapmak için yapmamız gereken;

“13%10″ dur. % işaretinin solu modu alıncak sayıyı, sağı ise mod kaça göre alınacağını belirtir.

2) büyük sayıyı seçtirmek

hani dedik ya, sayılardan büyüğünü alcaz sonra bakçaz ikisi de kalansız bölünüyor mu bu sayıya, büyüğünü aldık çünkü küçüğünü alsaydık olmazdı :D , nedenini düşünüp açıklarım. mesela 90=45*2=18*5 ya, büyüğünü alınca daha az döngü dönüyor(2 kere). her neyse, büyük sayıyı belirtmek için:

if (sayi1>=sayi2) {

buyukSayi=sayi1;

}

else {

buyukSayi=sayi2;

}

3) programda iki sayının da elimizdeki sayıya kalansız bölünüp bölünmediğini hesaplamak.

1′de belirttiğimiz gibi, buyukSayi%sayi1 = 0 olursa yani okek varsaydığımız değer sayi1′e kalansız bölünebiliyorsa bu işlem doğru olacak, aynı şekilde ikincisine de bölünmeli ya hani, buyukSayi%sayi2 = 0 , eğer buyukSayi bu ikisinden de başarılı olursa yani ikisine de tam bölünebiliyorsa (buyuksayi dediysem buyuksayiyinin belirli bi katina ulastigi deger), okek’i bulduk demektir.

neyse programı yazalım anlarız :

#include <stdio.h>

int main() {

int buyukSayi,okek,obeb;

int sayi1=18;

int sayi2=45;

if (sayi1>=sayi2) {

buyukSayi=sayi1;

}

else {

buyukSayi=sayi2;

}

okek=buyukSayi;

while (okek%sayi1 != 0  || okek%sayi2 !=0) { //içlerinden biri bile tam bölünebilmese içerdeki kodlar çalışacak

okek=okek+buyukSayi; //içerdeki kod

}
obeb = sayi1*sayi2 / okek;
printf("okek : %d",okek);
printf("obeb : %d",obeb);

getchar();

}

Leave a Reply

Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported.