C# での素数生成の強化
あなたの C# コードは、指定された範囲内の素数を識別することを目的としていますが、現時点では欠陥があり、出力がありません。問題は、素数性を決定するために使用されるアルゴリズムにあります。
コードを理解する:
prime_num
メソッドは、指定された num
までの素数を見つけようとします。 isPrime
を true
に初期化し、0 から num
までの数値を反復処理します。それぞれの数値 i
について、2 から num
までの数値で割り切れるかどうかをチェックします。 i
がそれ自体以外の任意の数で割り切れる場合、isPrime
は false
になります。すべてのチェックの後、isPrime
が true
のままである場合にのみ、i
は素数とみなされ、出力されます。
エラーの特定:
主なエラーは、外側のループの増分 (for (int i = 0; i <= num; i )
) です。これには素数ではない 0 が含まれており、不要なチェックが実行されます。 内側のループでも冗長な計算が実行されます。
より効率的なソリューション:
最適な素数生成については、エラトステネスの篩を検討してください。このアルゴリズムは、2 から始まる各素数の倍数を排除することでパフォーマンスを大幅に向上させます。これにより、必要なチェックの数が大幅に削減されます。
要するに、元のコードの非効率性は、間違ったループ反復と冗長チェックに起因しています。 エラトステネスのふるいや試行除算ふるいなど、より効率的なアルゴリズムを採用すると、より迅速に正しい素数が得られます。
以上が素数を効率的に生成するために C# コードを最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。