Bu örneğimizde farklı yöntemlerle C# Asal Sayı Kontrolü gerçekleştireceğiz. C# Console uygulaması ile kullanıcının girdiği sayının asal sayı olup olmadığını bularak ekranda göstereceğiz. Öncelikli olarak asal sayının tanımını yaparak hatırlayalım.
Asal sayı : Sadece 1′ e ve kendisine kalansız olarak bölünebilen 1′ den büyük sayılardır. Bu tanıma göre istisna durumları değerlendirmek gerekirse 1 sayısı asal sayı kabul edilmemektedir.
Yapacağımız örnekte girilen sayıyı alarak 1 ve kendisi hariç sayılara kalansız bölünüp bölünmediğini kontrol edeceğiz.
Eğer kalansız bölünmüyorsa bu sayının asal sayı olduğunu anlayacağız.
Eğer kendisine kadar olan sayılardan herhangi bir sayıya kalansız olarak bölünüyorsa diğer sayılara bakmamıza gerek kalmadan döngüden çıkarak bu sayının asal sayı olmadığı mesajını vereceğiz.
Örneği çok farklı yollardan çözmek mümkündür. Bizde örneğimizi For Döngüsü, While Döngüsü ve Metot Kullanarak farklı şekillerde oluşturacağız.
Örnek ekran çıktısı:
Örneğe ait C# Kodlarımız :
Çözüm 1 : For Döngüsü kullanarak-1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
static void Main(string[] args) { int sayac = 0; Console.WriteLine("Sayıyı Girin"); int sayi = Convert.ToInt32(Console.ReadLine()); for(int i = 1; i <= sayi; i++) { if (sayi % i == 0) { sayac++; } } if (sayac == 2) { Console.WriteLine("Girdiğiniz {0} sayısı Asal Sayıdır.",sayi); } else { Console.WriteLine("Girdiğiniz {0} sayısı Asal Sayı Değildir.", sayi); } Console.ReadKey(); } |
Çözüm 2: For döngüsü kullanarak 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
static void Main(string[] args) { int kontrol = 0; Console.Write("Sayı Girin : "); int sayi = Convert.ToInt32(Console.ReadLine()); if(sayi==1 || sayi == 0) { Console.WriteLine("Girdiğiniz sayı asal değildir."); } else { for (int i = 2; i < sayi/2; i++) { if (sayi % i == 0) //Kalansız bölünüyormu? { kontrol++; break; //Diğer sayılara bakmaya gerek duymuyoruz. } } if (kontrol != 0) { Console.WriteLine("Girdiğiniz sayı asal değildir."); } else { Console.WriteLine("Girdiğiniz sayı asaldır."); } } Console.ReadKey(); } |
Çözüm 3: While Döngüsü kullanarak
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
int kontrol = 0; Console.Write("Sayı Girin : "); int sayi = Convert.ToInt32(Console.ReadLine()); int i = 2; while (i < sayi) { if (sayi % i == 0) kontrol++; i++; } if (kontrol != 0) Console.WriteLine("Girdiğiniz sayı asal değildir."); else Console.WriteLine("Girdiğiniz sayı asaldır."); Console.ReadKey(); |
Çözüm 4: Metot / Fonksiyon Kullanarak
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
static void Main(string[] args) { Console.Write("Sayı Girin : "); int sayi = Convert.ToInt32(Console.ReadLine()); int sonuc = Asalmi(sayi); if (sonuc == 0) { Console.WriteLine("{0} Asal Sayı Değildir.", sayi); } else { Console.WriteLine("{0} Asal Sayıdır.", sayi); } Console.ReadKey(); } private static int Asalmi(int sayi) { int i; for (i = 2; i <= sayi - 1; i++) { if (sayi % i == 0) { return 0; } } if (i == sayi) { return 1; } return 0; } |
Video: