Asal sayıları bulma yöntemi arayanlar için Eratosthenes Kalburu, M.Ö. 3. yüzyıldan beri kullanılan ve hâlâ etkili olan bir algoritmadır. **Asal Sayı Nedir?** Yalnızca 1 ve kendisiyle bölünebilen 1'den büyük sayılardır. 2, 3, 5, 7, 11, 13... İlk asal sayı 2'dir ve tek çift asal sayıdır. 1 asal sayı değildir. **Eratosthenes Kalburu Nasıl Çalışır?** Belirli bir üst sınıra kadar tüm asal sayıları bulmak için kullanılır. 1'den 50'ye kadar asal sayıları bulmak isteyelim: **1. Adım:** 1'den 50'ye kadar tüm sayıları yazın. **2. Adım:** 1'i çizin (asal değil). **3. Adım:** 2'yi işaretleyin (asal), 2'nin tüm katlarını çizin: 4, 6, 8, 10... **4. Adım:** Listedeki bir sonraki çizilmemiş sayıya geçin: 3. İşaretleyin, 3'ün katlarını çizin: 6, 9, 12, 15... **5. Adım:** Bir sonraki çizilmemiş: 5. İşaretleyin, 5'in katlarını çizin: 10, 15, 20, 25... **6. Adım:** Bir sonraki çizilmemiş: 7. İşaretleyin, 7'nin katlarını çizin: 14, 21, 28, 35... **7. Adım:** √50 ≈ 7.07. Bu değerin üzerindeki kalıp kalıplarına gerek yok; 7'den büyük bir sayının 50'ye kadar olan katı zaten daha küçük sayıların katı olarak çizildi. Kalan çizilmemiş sayılar asaldır: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47. **Neden √N'e Kadar Test Yeterli?** N sayısı bileşikse en az bir asal çarpanı √N veya daha küçüktür. Dolayısıyla √N'den küçük tüm asal sayıların katlarını eledikten sonra kalan sayılar asaldır. **Kağıtta Uygulama** 1. 1-100 arası sayıları 10 sütunluk bir tabloya yazın. 2. Yukarıdaki adımları uygulayın. 3. Çizilmemiş 25 sayı kalır, bunlar 1-100 arasındaki asal sayılardır. **Kod ile Kalbur (Python)** ```python def eratosthenes(n): asallar = [True] * (n + 1) asallar[0] = asallar[1] = False for i in range(2, int(n**0.5) + 1): if asallar[i]: for j in range(i*i, n+1, i): asallar[j] = False return [i for i, v in enumerate(asallar) if v] print(eratosthenes(50)) ``` Asal sayıları bulma yöntemi olarak Eratosthenes Kalburu, büyük aralıklarda tek tek bölme testine kıyasla çok daha hızlıdır ve kolayca görselleştirilebilir.