C# Dersleri 17 - Asal Sayı Bulma

     Asal sayılar, 1 veya kendisinden başka bir doğal sayıya bölünemeyen doğal sayılardır. 2'den başlayıp, kullanıcının girdiği sayıya kadar tüm asal sayıları bulan bir Windows form uygulaması yapalım.

     Bir Windows form uygulaması oluşturup, bir Textbox ve bir Button ekleyelim. Formun son hali aşağıdaki gibi olmalı :

C# ile asal sayı bulma

     Gelelim C# tarafına. Genel olarak algoritma şöyle. 2 ile kullanıcının girdiği değer arasındaki her bir sayının tek tek asal olup olmadığını kontrol edeceğiz. Asal ise bir string değişkene ekleyip en sonda da o string değişkeni MessageBox'ta göstereceğiz.

     Gelen sayının asal olup olmadığını kontrol eden bir methodla başlayalım kodlamaya.     

bool AsalKontrol(int num)
{
    bool asal = true;

    for (int i = 2; i < num; i++)
    {
        int kalan = num % i;
        if (kalan == 0)
        {
            asal = false;
            break;
        }
    }

    return asal;
}

     Methodun adı "AsalKontrol", tipi bool. int tipinde bir parametre alıyor. Yani gelen sayıyı kontrol ediyor, asal ise true değeri döndürüyor; değilse false değeri döndürüyor. "%" operandı iki sayının bölümünden kalan sonucu verir. Sayının asal olup olmadığını kontrol etmek için, o sayıdan küçük 1'den büyük tüm sayılara bölümünden kalanı kontrol ediyor. Eğer herhangi bir sayıya bölümünden kalan 0 ise o sayıya bölünebiliyor demektir yani sayımız asal sayı değil. "break" keywordu döngüyü sonlandırmaya yarar. Yani bir sayıya tam bölünebiliyorsa asal olmadığı kesindir ve diğer sayılara bölünebilir olmasını kontrol etmeye gerek yok demektir.

     Gelelim Button'a tıklanınca çalışacak kod bloğuna :      

private void btnFind_Click(object sender, EventArgs e)
{
    int number = -1;
    string message = string.Empty;
    try
    {
        number = Convert.ToInt32(txtNumber.Text);
    }
    catch (Exception ex)
    {
        MessageBox.Show("Lütfen bir doğal sayı giriniz");
        return;
    }

    for (int i = 2; i <= number; i++)
    {
        if (AsalKontrol(i))
        {
            //asal sayı ise
            message = message + i + ",";
        }
    }

    if (message.EndsWith(","))
    {
        message = message.Substring(0, message.Length - 1);
    }

    MessageBox.Show(message);
}

     Kullanıcının girdiği input değerini,number isimli bir değişkene atıyoruz. Bir de "message" isimli bir string değişken oluşturuyoruz. number değerinden küçük her sayıyı for döngüsü ile "AsalKontrol" methoduna gönderip asal olup olmadığını kontrol ediyoruz. Eğer sayı asal ise, message değişkenine atıyoruz. 

     Projeyi buradan indirebilirsiniz. 

YORUMLAR
Email Adresi *
Görüntülenecek İsim *
Yorum *
Paylaş
  • f