Python ile Asal Sayıları Keşfetmek: Döngüler ve for…else Gücü

Matematiğin en gizemli ve temel yapı taşlarından biri olan asal sayılar, sadece matematikçilerin değil, kriptografiden veri güvenliğine kadar pek çok yazılım alanının da merkezinde yer alır. Peki, Python’ın sade sözdizimi ile kendi asal sayı üreticimizi nasıl oluşturabiliriz?

Asal Sayıların Peşinde: Algoritma Nasıl Çalışır?

Bir sayının asal olması için sadece 1’e ve kendisine kalansız bölünebilmesi gerekir. Programlama dünyasında bu kontrolü yapmanın en temel yolu “Deneme Bölmesi” (Trial Division) yöntemidir.

Bu yöntemde, kontrol etmek istediğimiz sayının (n), 2’den başlayarak kendisinden bir önceki sayıya kadar olan tüm tam sayılara bölünme durumu incelenir. Eğer bu aralıktaki herhangi bir sayıya tam bölünüyorsa, o sayı asal değildir. Eğer hiçbirine bölünmüyorsa, tebrikler; bir asal sayı bulduk!

Kodun Anatomisi

Projemizde dikkat çeken en önemli nokta, Python’a özgü olan for...else yapısıdır. Birçok programlama dilinde görmeye alışık olmadığımız bu yapı, döngülerin kontrolünü inanılmaz derecede kolaylaştırır.

İşte projenin kalbi:

"""
Author: Ahmet Aksoy
Date: 2026-04-17
Python 3.12 - Ubuntu 24.04
"""

def main():
    lownum = 0
    highnum = 127

    # Belirlenen aralıktaki her sayı için kontrol başlar
    for n in range(lownum, highnum + 1):
        if n > 1: # 1 ve altı asal değildir
            for i in range(2, n):
                if n % i == 0:
                    break # Bölünen bulundu, döngüden çık
            else:
                # Sadece döngü 'break' ile kesilmediyse (yani asal ise) çalışır
                print(n)

main()

Kritik Noktalar:

  • İç İçe Döngüler: Dış döngü aralıktaki sayıları gezerken, iç döngü bu sayıların asal olup olmadığını test eder.
  • for...else Mantığı: else bloğu, içteki for döngüsü boyunca hiç break komutu çalıştırılmadığında tetiklenir. Yani sayı, 2’den n-1‘e kadar hiçbir sayıya bölünmediyse, bu durum sayının asal olduğunu kanıtlar.
  • Sınır Koşulu: if n > 1 kontrolü, asal sayı tanımı gereği 0 ve 1’in elenmesini sağlar.

Nasıl Çalıştırılır?

Bu proje herhangi bir dış kütüphane gerektirmez, standart Python 3.12 ortamında çalışır.

  1. Proje klasörüne gidin.
  2. Terminalden şu komutu çalıştırın:
   python prime_numbers.py

Program, 0 ile 127 arasındaki tüm asal sayıları alt alta ekrana yazdıracaktır.

Ne Öğrendik?

Bu küçük proje bize Python’da çok değerli üç ders verdi:

  • Sayı Teorisi Uygulaması: Matematiksel bir tanımın kod algoritmasına nasıl dönüştürüleceğini gördük.
  • Döngü Kontrolü: break ifadesinin döngü akışını nasıl değiştirdiğini deneyimledik.
  • Python’ın Zarifliği: for...else yapısı sayesinde, “bayrak” (flag) değişkenleri kullanmadan (örneğin is_prime = True gibi) temiz bir mantık kurabildik.

Zaman ve Alan Karmaşıklığı:
Bu yaklaşım $O(N^2)$ zaman karmaşıklığına sahiptir. Çok büyük sayı aralıkları için “Sieve of Eratosthenes” (Eratosthenes Kalburu) gibi daha optimize yöntemler tercih edilmelidir.

Kaynaklar ve Sonraki Adımlar

Asal sayıların dünyası oldukça geniştir. Eğer bu konu ilginizi çektiyse, bir sonraki adımda sayıların karelerini hesaplayan veya Fibonacci dizisini üreten projelere göz atabilirsiniz.

Ahmet Aksoy

Not: Bu yazıda incelediğimiz kodu ve benzer projelerin kaynak kodlarını https://github.com/ahmetax/practical-python-examples adresinde bulabilirsiniz.

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir