c語言怎么求一個(gè)區(qū)間中素?cái)?shù)個(gè)數(shù)

小億
229
2023-10-11 21:30:01
欄目: 編程語言

要求一個(gè)區(qū)間中素?cái)?shù)的個(gè)數(shù),可以使用以下的方法:

  1. 編寫一個(gè)函數(shù)isPrime()來判斷一個(gè)數(shù)是否為素?cái)?shù)。該函數(shù)接受一個(gè)參數(shù)n,返回一個(gè)布爾值,表示n是否為素?cái)?shù)。
  • 判斷一個(gè)數(shù)n是否為素?cái)?shù)的方法可以是:從2到sqrt(n)逐個(gè)判斷n是否能被整除,如果找到一個(gè)能整除的數(shù),則n不是素?cái)?shù);如果找不到能整除的數(shù),則n是素?cái)?shù)。
  1. 在主函數(shù)中,輸入一個(gè)區(qū)間的上下界,使用循環(huán)遍歷這個(gè)區(qū)間的每一個(gè)數(shù),判斷它是否是素?cái)?shù),如果是素?cái)?shù),則計(jì)數(shù)器加1。

  2. 最后輸出計(jì)數(shù)器的值,即為這個(gè)區(qū)間中素?cái)?shù)的個(gè)數(shù)。

下面是一個(gè)示例代碼:

#include <stdio.h>
#include <stdbool.h>
#include <math.h>
// 判斷一個(gè)數(shù)是否為素?cái)?shù)
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("請(qǐng)輸入一個(gè)區(qū)間的上下界:");
scanf("%d %d", &lower, &upper);
for (int i = lower; i <= upper; i++) {
if (isPrime(i)) {
count++;
}
}
printf("這個(gè)區(qū)間中素?cái)?shù)的個(gè)數(shù)為:%d\n", count);
return 0;
}

示例運(yùn)行結(jié)果:

請(qǐng)輸入一個(gè)區(qū)間的上下界:1 100
這個(gè)區(qū)間中素?cái)?shù)的個(gè)數(shù)為:25

0