ホームページ > バックエンド開発 > C++ > C で整数が素数かどうかを判断するにはどうすればよいですか?

C で整数が素数かどうかを判断するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-31 09:07:09
オリジナル
363 人が閲覧しました

How Can I Determine if an Integer is Prime in C?

C での素数の判定

C で指定された整数が素数かどうかを判定するという要求は、プログラミングで興味深い課題を引き起こします。これを達成するための手順を詳しく見てみましょう:

  1. ループを初期化します: 2 から始まり、指定された整数より 1 つ小さい値までの数値を繰り返します。
  2. 割り算の確認: ループ内の各数値について、整数をその数値で割ったときの余りを計算します。剰余が 0 で、数値が整数そのものではない場合、その数値は素数ではありません。
  3. ステップ 2 を繰り返します: 整数の平方根に到達するまで数値の反復を続けます。
  4. 結果を返します: ループ内で約数が得られる数値がない場合、整数は次のようになります。プライム。それ以外の場合、素数ではありません。

C# では、コードはこのアルゴリズムを次のように実装します。

static bool IsPrime(int number)
{
    for (int i = 2; i < number; i++)
    {
        if (number % i == 0 && i != number)
            return false;
    }
    return true;
}
ログイン後にコピー

C に適応する:

このコードを C に変換するには、いくつかのマイナーなコードを作成する必要があります変更点:

  1. C には bool 型がないため、代わりに整数を使用し、素数の場合は 1、素数でない場合は 0 を返します。
  2. C99 では stdbool.h ヘッダーが導入されました。これは bool を定義しますが、環境が C99 をサポートしていない場合は、前述の整数を使用できます。

次の変更された C コードは、同じタスクを実行します。

int IsPrime(unsigned int number)
{
    if (number <= 1) return 0; // Zero and one are not prime
    unsigned int i;
    for (i = 2; i * i <= number; i++)
    {
        if (number % i == 0) return 0;
    }
    return 1;
}
ログイン後にコピー

このコードは、パフォーマンスを最適化するために整数の平方根までの割り算をチェックし、非処理を処理します。 0 や 1 などの素数の場合。

以上がC で整数が素数かどうかを判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート