function output=belli_bir_sayidan_kucuk_asal_sayi_bulma_optimal_esas(n) %n asla sayilarin kucuk ya da esit olacagi sayi if n==1, %eger n=1 ise bu durumda sadece tek bir asal sayi vardir ve de bu asal sayi sadece 1'dir output=1; elseif n==2, %eger n=2 ise bu durumda iki asal sayi vardir ve de bunlar da 1 ve 2 dirler output=[1 2]; else % n degeri 2den buyukse mesela 3,4,5.... output=[1 2 3]; sayici=4; %sayici belirlenir; bu sayici asal sayilarin sayisini bulmak icin kullanilacak for i=5:2:n, %bu kisim for dongusunun baslangici olacak n degerine kadar olan butun sayilar kontrol edilecek sayi_asal_kontrol=1; % sayiyi ilk basta asaldir diye varsayiyoruz for k=3:length(output), %n sayisinin bolunecegi sayilar dongusu, sadece tek sayilari kontrol etmek yeterli if mod(i,output(k))==0 %bölünebiliyordur ve asal say? de?ildir sayi_asal_kontrol=0; break end end if sayi_asal_kontrol==1, % sayi asal sayi olarak tespit edildi demektir output(sayici)=i; % bulunan asal sayi outputun yen, elemani olarak yazildi sayici=sayici+1; end end end