C言語で素数の個数を数える方法

C言語で素数をカウントするためのステップ:

  1. まず、数値が素数であるか判定する関数 isPrime() を定義します。この関数は、整数引数 num を受け取り、素数であるかどうかを示す boolean 値を返します。関数内では、2 から num の平方根までforループを用いて繰り返し処理し、num を割り切れる数値があるかどうかを確認します。割り切れる数値があれば、num は素数ではないので false を返します。そうでなければ、num は素数なので true を返します。
  2. 素数の数をカウントするための変数 count を main 関数で定義します。
  3. 2からNまでの素数を数える範囲をループで処理します。ここでNは2よりも大きな整数です。
  4. for文で各数字に対して isPrime() 関数を呼んで真なら素数として count をインクリメント
  5. 処理の結果、素数の個数カウントを出力します。

サンプルコードを以下に示します。

#include <stdio.h>
#include <stdbool.h>
#include <math.h>

bool isPrime(int num) {
    if (num < 2) {
        return false;
    }
    for (int i = 2; i <= sqrt(num); i++) {
        if (num % i == 0) {
            return false;
        }
    }
    return true;
}

int main() {
    int N;
    printf("请输入一个大于2的整数N:");
    scanf("%d", &N);

    int count = 0;
    for (int i = 2; i <= N; i++) {
        if (isPrime(i)) {
            count++;
        }
    }

    printf("在范围2到%d中,素数的个数为:%d\n", N, count);

    return 0;
}

Nを100として実行すると、2から100の範囲に素数が25個あることを示す25という出力が得られます。

bannerAds