私は、Eratosthenesのふるいを使って2-nから素数を見つける独自のプログラムを作った。複合番号を削除するより効率的な方法を実装する方法はありますか?プロジェクトへEratosthenes最適化のふるい
リンク:https://github.com/Gurran/Sieve-of-Eratosthenes
class Program
{
static void Main()
{
int max;
Console.Write("Enter max number: ");
max = int.Parse(Console.ReadLine());
FindPrimes(max);
Console.ReadLine();
}
// Prints numbers.
public static void PrintMap(List<int> List)
{
for (int i = 0; i < List.Count; i++)
{
if (i % 10 == 0)
Console.WriteLine();
Console.Write(List.ElementAt(i) + ", ");
}
}
// Generates list containing 2 - max
// Removes non-primes
// Calls PrintMap method
public static void FindPrimes(int max)
{
int x = 2;
List<int> NrRange = new List<int>();
for (int i = 2; i < max; i++)
NrRange.Add(i);
for (int i = 0; i < NrRange.Count; i++)
for (int j = x; j < NrRange.Count; j++)
if (NrRange.ElementAt(j) % x == 0)
NrRange.RemoveAt(j);
x++;
PrintMap(NrRange);
}
}
これはおそらく([コードレビュー]以上でありますhttp://codereview.stackexchange.com/)質問 – Randy
"より効率的な"、より具体的にする必要があります。 「もっと速く走る」という意味ですか? 「記憶が少ない」という意味ですか?そして、コードが機能し、それを改善する方法を探しているだけなら、[codereview](http://codereview.stackexchange.com)がその場所です。 –