C Programlama Dili Recursive Asal Sayı Kontrol Etme Örneği
C Programlama Dili Recursive Asal Sayı Kontrol Etme Örneği kodunu bulabilirsiniz.
Bu recursive fonksiyon iki parametre almaktadır. İlk parameter kontrol edilecek sayı. İkinci parametre ile ise sınırı belirliyoruz. Eğer sayının yarısına kadar kontrol ettiysek diğer yarısını kontrol etmememize gerek yok.
Asal Sayı Kontrol Etme Recursive Fonksiyonu ile 4 durum kontrolü vardır.
- Recursive fonksiyonumuz olarak dördüncü return devreye girer. Örneğin asalSayi(7,3) gönderilirse. (7/2= 3 (integer olduğundan 3.5 olmaz) sonucundan ikinci parametre 3 olmaktadır.)
- Eğer Girilen sayı bir sayıya tam bölünüyor ise asal olmadığından üçüncü if’e girer ve değer olarak 0 döndürür.
- i değeri kontrol edilen sayıdır. (20,10) değerleri gönderildiğinde; fonksiyon 20’yi 1’den 10’a kadar modunu alıyor. Eğer tam bölünmezse i değeri 1’e kadar düşüyor ve sonuç olarak 1 döndürür.
- Gönderilen sayı 2’nin altında ise 0 değeri döndürür.
- asalSayi(7,3);
- return asalSayi(7,2);
- return asalSayi(7,1);
- if(i == 1)
- return 1; olarak dönüş yapar.
main içerisinde sonuc 0 döndü ise asal değildir diye yazmaktadır. Eğer 0’dan farklı bir değer (yani 1) dönerse asal sayı olarak ekrana basmaktadır.
Recursive Asal Sayı Kontrol Etme Örneği:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <stdio.h> int asalSayi(int, int); int main() { int sayi = 29; int sonuc = asalSayi(sayi, sayi / 2); if (sonuc == 0) printf("%d asal sayi degildir\n", sayi); else printf("%d asal sayidir\n", sayi); return 0; } int asalSayi(int x, int i) { if (x < 2) return 0; if (i == 1) return 1; if (x % i == 0) return 0; return asalSayi(x, i - 1); } |
Çıktı:
29 asal sayidir |
Leave a reply
Lütfen yorum için giriş yap ve yakayıt ol Teşekkürler .