C言語で指定された範囲内の素数の数をどのように求めるか

ある範囲における素数の個数は次のような方法で求めることができます。

  1. 素数かどうか
  1. 自然数nが素数であるかどうかを判定する方法として、2から√nまでの整数を順番にnで割り切れるかどうか調べ、割り切れる数が見つかればnは素数ではなく、割り切れる数が見つからなければnは素数とする方法がある。
  1. 主関数で、区間の上下限の入力を受けて、その間にある全ての整数を順に調べて、素数かどうかを判定し、素数ならば素数カウンターを1増やす。
  2. 最後にカウンターの値を出力して、これがこの区間内の素数の数になります。

ネイティブで日本語に言い換えた文:以下にサンプルコードを記載します。

#include <stdio.h>
#include <stdbool.h>
#include <math.h>
// 判断一个数是否为素数
bool isPrime(int n) {
if (n <= 1) {
return false;
}
int sqrt_n = sqrt(n);
for (int i = 2; i <= sqrt_n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int lower, upper;
int count = 0;
printf("请输入一个区间的上下界:");
scanf("%d %d", &lower, &upper);
for (int i = lower; i <= upper; i++) {
if (isPrime(i)) {
count++;
}
}
printf("这个区间中素数的个数为:%d\n", count);
return 0;
}

サンプルの実行結果:

请输入一个区间的上下界:1 100
这个区间中素数的个数为:25
bannerAds