Algoritma programlamanın en temel taşlarından biridir. Genellikle asal sayi algoritma konusunu yazılım ve programlama başlangıçlarında inceliyoruz. Bu yazıda asal sayının sade ve kısa bir algoritmasını yapıyoruz. Hatta algoritma çalışmasının videosuna Bilge Panter YouTube kanalından da ulaşabilir, canlı bir şekilde izleyebilirsiniz.
Asal sayı algoritması oluştururken üç temel sarti yazalım ve ardından flowchart oluşturalım. Üç temel parametre söyle:
- En kücük asal sayi 2 (iki)dir ve bu sayi 2’ye eşit olabilir.
- 2’den büyük olabilir.
- Sayimiz sadece kendisine bölünmeli.
Hadi Başlayalım:
Algoritmaya giriş için START kullanıyor ve kullanıcıdan INPUT isteyerek bunu “ n ” olarak okuyoruz.
En küçük asal sayı 2 yi sayaç olarak atıyor ve i olarak adlandırıyoruz. i = 2.


n = 2 ise; Burada “En kücük asal sayi 2 (iki)dir ve bu sayi 2’ye esit olabilir.” durumunu ele aliyoruz.
n = i (2 = 2) oldugu icin n<i FALSE deger olacak.
n == i icin TRUE
Sonuc: ASAL değeridir.
n = 3 ve daha büyük ise;n < i karsilastirmasi TRUE burada “2’den büyük olabilir.” durumunu ele alıyoruz. “i = i + 1”FOR döngüsüyle sayi eşitlenene kadar büyütüyoruz. Eşitlenmesi durumunda;ise i < n FALSE vererek i == n durumuna göre ASAL yada ASAL DEGIL sonucunu ele alıyoruz.
n % i == 0 karşılaştırması ile son “Sayımız sadece kendisine bölünmeli.” durumunu da karşılaştırmış oluyoruz. Ayrıca her sayiyi da kendisine bölünmesi için “i = i + 1” yaparak FOR döngüsüyle sayı eşitlenene kadar büyütüyoruz.Eşitlenmesi durumunda ise i < n FALSE vererek i == n durumuna göre ASAL yada ASAL DEGIL sonucunu ele alıyoruz.
Algoritmada n % i karşılaştırmasında 2 nin disinda 3, 5 ve 7 katlari olan sayilar FALSE değerle direkt elenmektedir. Ayrıca 2, 3, 5 ve 7 sayisi bir başka yazıda N sayısına kadar olan asal sayilari bulma algoritmasında büyük önem taşımaktadır. Ayrıca N sayısına kadar olan asal sayilari bulma algoritması ve flowchart icin tiklayiniz.
Algoritmada flowchart disinda meraklilari icin pseudocode da yazinin sonuna ekliyorum.

START
INPUT n
SET i = 2;
FOR i = 2; i < n; i = i + 1;
IF n % i == 0;
OUTPUT “prime”
ELSE
OUTPUT “not prime”
ENDIF
ENDFOR
END
Bununla birlikte algoritmasını merak ettiğiniz bir konu varsa yorumlara bunu yazarsanız beraber inceleyebiliriz.