C言語で素数の個数を数える方法
C言語で素数をカウントするためのステップ:
- まず、数値が素数であるか判定する関数 isPrime() を定義します。この関数は、整数引数 num を受け取り、素数であるかどうかを示す boolean 値を返します。関数内では、2 から num の平方根までforループを用いて繰り返し処理し、num を割り切れる数値があるかどうかを確認します。割り切れる数値があれば、num は素数ではないので false を返します。そうでなければ、num は素数なので true を返します。
- 素数の数をカウントするための変数 count を main 関数で定義します。
- 2からNまでの素数を数える範囲をループで処理します。ここでNは2よりも大きな整数です。
- for文で各数字に対して isPrime() 関数を呼んで真なら素数として count をインクリメント
- 処理の結果、素数の個数カウントを出力します。
サンプルコードを以下に示します。
#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という出力が得られます。