"Enter"a basıp içeriğe geçin

C# Girilen Sayının Asal Olup Olmadığını Nasıl Bulabiliriz?

Asal sayılar, yalnızca 1 ve kendilerine bölünebilen, 1’den büyük doğal sayılardır. Örneğin, 2, 3, 5, 7, 11, 13, 17, 19 asal sayılardır. Girilen sayının asal olup olmadığını nasıl bulabiliriz? Bu sorunun cevabını C# programlama dilinde yazacağımız bir kod ile göstereceğiz.

Öncelikle, bir sayının asal olup olmadığını kontrol eden bir fonksiyon tanımlayalım. Bu fonksiyonun adı IsPrime olsun ve parametre olarak bir int tipinde bir sayı alsın. Fonksiyonun dönüş tipi ise bool olsun, yani sayının asal olup olmadığına göre true veya false değeri döndürsün.

Fonksiyonun içinde yapacağımız işlem şu: Sayıyı 2’den başlayarak kendisine kadar olan tüm doğal sayılara bölerek deneyelim. Eğer sayı herhangi bir sayıya tam bölünürse, yani bölümünden kalan sıfır olursa, sayı asal değildir ve false döndürelim. Eğer hiçbir sayıya tam bölünmezse, sayı asaldır ve true döndürelim.

Bu işlemi yapmak için bir for döngüsü kullanabiliriz. Döngünün başlangıç değeri 2, bitiş değeri ise parametre olarak aldığımız sayının kendisi olsun. Döngü her adımda bir artarak devam etsin. Döngünün içinde, eğer sayının döngüdeki değere bölümünden kalan sıfır ise, yani tam bölünüyorsa, fonksiyon false döndürsün ve döngüden çıksın. Eğer döngü sonuna kadar hiçbir değere tam bölünmezse, fonksiyon true döndürsün.

Fonksiyonumuzun C# kodu şöyle olabilir:

bool IsPrime(int number)
{
    for (int i = 2; i < number; i++)
    {
        if (number % i == 0)
        { // Tam bölünüyorsa
            return false; // Asal değil
        }
    }
    return true; // Asal
}

Bu fonksiyonu kullanarak, klavyeden girilen bir sayının asal olup olmadığını ekrana yazdıran bir program yazabiliriz. Bunun için Console.ReadLine() metodu ile klavyeden bir girdi alalım ve int.Parse() metodu ile bu girdiyi int tipine çevirelim. Sonra bu sayıyı IsPrime fonksiyonuna parametre olarak verelim ve dönen değere göre ekrana “Sayı asaldır” veya “Sayı asal değildir” yazdıralım.

Programımızın C# kodu şöyle olabilir:

using System;
class Program 
{
    static void Main(string[] args) 
    {
        Console.Write("Bir sayı giriniz: ");
        int number = int.Parse(Console.ReadLine()); // Klavyeden girdi al ve int'e çevir
        bool result = IsPrime(number); // Fonksiyona ver ve sonucu al
        if (result)
        { // Sonuç true ise
            Console.WriteLine("Sayı asaldır.");
        }
        else
        { // Sonuç false ise
            Console.WriteLine("Sayı asal değildir.");
        }
    }
}

Bu programı çalıştırdığımızda, örneğin 17 girersek ekrana “Sayı asaldır.” yazacaktır. Ama 18 girersek ekrana “Sayı asal değildir.” yazacaktır.

Bu şekilde C#’ta girilen bir sayının asal olup olmadığını nasıl öğrenebileceğimizi anlatan kodu yazmış olduk. Umarım faydalı olmuştur.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.