C 言語で、n 個の数のうち素数の数を計算の方法
素数の個数を n 個の数字から求めるには、次の手順に従います。
- まず、数が素数であるかを判定する関数isPrimeを定義します。判定方法は、2から順番にその数が2からsqrt(n)までの数で割り切れるかどうかを調べます。割り切れる数があれば、その数は素数ではありません。そうでなければ、その数は素数です。
- main関数内で、まず1つの整数nを読み込む。これはその後にn個の数字を入力することを表す。
- n個の数をループで読み込み、それぞれにisPrime関数を当てて判定する。真を返した場合、素数個数を1増やす。
- 素数の数を出す。
以下はコード例です。
#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