Bu gece paylaştığım C# For Döngüsü Kullanımı ve C# ile Fibonacci Sayılarını Yazdırmak yazılarından sonra asal sayıları yazdırarak C# programlama dilinde döngü kullanımı örneklerine devam ediyoruz.
Asal sayı, bildiğimiz gibi 1 ve kendisi dışında hiçbir sayıya kalansız olarak bölünemeyen sayılara verilen isimdir. Sitede daha önce farklı programlama dilleri kullanılarak asal sayıları bulan ve yazdıran uygulamalar paylaşılmış.
bkz: Java'da asal sayıları bulan program
bkz: JavaScript'te asal sayıları bulan program
Biz de bu yazıda farklı bir kodlama geliştirelim ve önce bir sayının asal olup olmadığını true ya da false olarak döndüren bir metod yazalım. Sonra da bu metoda kullanıcının girdiği bir sayıdan yine kullanıcının gireceği bir sayıya kadar olan asal sayıları for döngüsü içerisinde göndererek asal olan sayıları yazdıralım.
Örnek 1: Kullanıcının girdiği bir sayının asal bir sayı olup olmadığını bulan program
namespace csharp
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Hangi sayı asal mı diye bakalım?");
int sayi = Convert.ToInt32(System.Console.ReadLine());
if (AsalMi(sayi))
System.Console.WriteLine(sayi + " asal bir sayıdır");
else
System.Console.WriteLine(sayi + " asal bir sayı değildir");
}
static bool AsalMi (int sayi)
{
for (int i=2; i<sayi; i++)
{
if (sayi % i == 0) //kalansız bölünmesi şartında
{
return false;
}
}
return true;
}
}
}
Çıktı:
Hangi sayi asal mi diye bakalim?
13
13 asal bir sayidir
Hangi sayi asal mi diye bakalim?
6
6 asal bir sayi degildir
Örnek 2: Kullanıcının gireceği iki sayı arasındaki asal sayıları bulup yazdıran program
namespace csharp
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("ilk sayı kaç olsun?");
int sayi1 = Convert.ToInt32(System.Console.ReadLine());
System.Console.WriteLine("ikinci sayı kaç olsun?");
int sayi2 = Convert.ToInt32(System.Console.ReadLine());
for (int i=sayi1; i<=sayi2; i++)
{
if (AsalMi(i))
System.Console.WriteLine(i + " asal bir sayıdır");
}
}
static bool AsalMi (int sayi)
{
for (int i=2; i<sayi; i++)
{
if (sayi % i == 0) //kalansız bölünmesi şartında
{
return false;
}
}
return true;
}
}
}
Çıktı:
ilk sayi kaç olsun?
20
ikinci sayi kaç olsun?
50
23 asal bir sayidir
29 asal bir sayidir
31 asal bir sayidir
37 asal bir sayidir
41 asal bir sayidir
43 asal bir sayidir
47 asal bir sayidir
Önceki yazılarımdan bazıları için;
bkz: C# Kullanıcıdan int veri tipinde input almak
bkz: C# dairenin çevresini ve alanını metod kullanarak hesaplamak
bkz: C# metodları kullanarak dört işlem yapmak
bkz: C# TryParse metodu kullanımı ve örnekleri