C 言語で、n 個の数のうち素数の数を計算の方法

素数の個数を n 個の数字から求めるには、次の手順に従います。

  1. まず、数が素数であるかを判定する関数isPrimeを定義します。判定方法は、2から順番にその数が2からsqrt(n)までの数で割り切れるかどうかを調べます。割り切れる数があれば、その数は素数ではありません。そうでなければ、その数は素数です。
  2. main関数内で、まず1つの整数nを読み込む。これはその後にn個の数字を入力することを表す。
  3. n個の数をループで読み込み、それぞれにisPrime関数を当てて判定する。真を返した場合、素数個数を1増やす。
  4. 素数の数を出す。

以下はコード例です。

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

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

int main() {
    int n, count = 0;
    printf("请输入个数n:");
    scanf("%d", &n);
    printf("请输入%d个数:", n);
    for (int i = 0; i < n; i++) {
        int num;
        scanf("%d", &num);
        if (isPrime(num)) {
            count++;
        }
    }
    printf("素数个数:%d\n", count);
    return 0;
}

上記のコードでは math.h ヘッダーファイル内の sqrt 関数を使用しているため、コンパイル時に数学ライブラリをリンクする必要があります。gcc を使用してコンパイルする場合は、-lm オプションを追加します。gcc -o 素数 素数.c -lm

bannerAds