Not: 5 dakikada hızlıcana kodlanmıştır, bu nedenle algoritma karmaşıklığı yüksek olabilir yada daha az satırla yazılabilir!
///
///
/// Asalsal sayıların hesaplanması istenen Rakam
///
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;
}
0 yorum