C Dilinde Recursive Fonksiyon ile EBOB Bulma

0
215

Bu dersimizde Recursive fonksiyon ile 2 sayının ebob’unu alan uygulama yazacağız. Programı yazarken kullancağımız mantık şu şekilde;

  1. Önce kullanıcıdan 2 sayı alınır.
  2. Alınan Bu Sayıların küçük olanı bir değişken(sayi1) atanıp sayılar ebob(x,y) şeklinde fonksiyona aktarılır.
  3. Fonksiyonda bu sayıların küçük sayıya göre mod’u alınır.
  4. Eğer her iki sayı için de mod = 0 ise EBOB bu değerdir.
  5. Eğer herhangi biri veya hiçbiri için mod = 0 değilse başta farklı bir değişkene(sayi1) aktardığımız küçük sayı bir azaltılıp return ebob(x,y) ile fonksiyon aynı değerler; farklı (sayi1)değişkeni ile çalıştırılır.
  6. Fonksiyon en son ihtimalle 1’e gelecektir. Bu durumda zaten otomatik olarak duracaktır. Bu durumda sayılar ‘Arasında Asal’ sayıdırlar.

 

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int kucuksayi,buyuksayi,sayi;

int ebob(int x,int y){
if (x>y){
kucuksayi = y;
buyuksayi = x;
}else{
kucuksayi = x;
buyuksayi = y;
}

int mod = buyuksayi % sayi ;
int mod1 = kucuksayi % sayi ;

if (mod==0 && mod1==0){
    printf ("EBOB : %d",sayi);
}else{
sayi = sayi - 1;
return ebob(buyuksayi,kucuksayi);
}


}

int main()
{
    int x,y;
    printf("EBOB'unu Almak Icin 2 Sayi Giriniz  :  ");
    scanf ("%d %d",&x,&y);
    printf("\n");

    if (x>y){
    sayi = y;
    }else{
    sayi = x;
    }
    ebob(x,y);
}

CEVAP VER