Alttaki metod kodu 'Eratosthenes Kalburu' yöntemi ile verilen bir tamsayı değere kadar olan bütün asal sayıların listesini geriye döndürmektedir.

Not: 5 dakikada hızlıcana kodlanmıştır, bu nedenle algoritma karmaşıklığı yüksek olabilir yada daha az satırla yazılabilir!





/// 

/// Geriye Asalsayıların Listesini Döndüren Metod
///
/// Asalsal sayıların hesaplanması istenen Rakam
/// Asalsayı Dizisi
public static int[] Find(int number)
{
int[] Array = new int[number];
for (int i = 0; i < Array.Length; i++)
{
Array[i] = i + 1;
}

Array[0] = 0; // 1 değeri asal olmadığı için yapılan işlem
int arrayBoyutununKarakoku = (int)Math.Sqrt(Array.Length);

for (int i = 2; i <= arrayBoyutununKarakoku; i++)
{
for (int j = 0; j < Array.Length; j++)
{
if (Array[j] != 0 && (Array[j] != i && (Array[j] % i) == 0))
{
Array[j] = 0;
}
}
}

#region Asalsayı Adadinin Elde edilmesi
int asalSayiAdedi = 0;
for (int i = 0; i < Array.Length; i++)
{
if (Array[i] != 0)
{
asalSayiAdedi++;
}
}
#endregion

#region Geriye Döndürülecek Olan Asalsayı Dizisinin Oluşturulması
int[] asalSayiDizisi = new int[asalSayiAdedi];
int asalSsayiIndex = 0;
for (int i = 0; i < Array.Length; i++)
{
if (Array[i] != 0)
{
asalSayiDizisi[asalSsayiIndex] = Array[i];
asalSsayiIndex++;
}
}
#endregion

return asalSayiDizisi;
}