用户输入n,m(n<m)请统计该区间内素数个数。用C语言编写
时间: 2024-03-20 10:42:12 浏览: 74
求~间的全部素数-C语言程序总结
可以使用循环和判断素数的方法来统计区间内素数的个数,具体实现如下:
```c
#include <stdio.h>
#include <stdbool.h> // 用于bool类型的支持
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n, m, count = 0;
printf("请输入n和m:");
scanf("%d %d", &n, &m);
for (int i = n; i <= m; i++) {
if (isPrime(i)) {
count++;
}
}
printf("在区间[%d,%d]中有%d个素数\n", n, m, count);
return 0;
}
```
解释一下代码的实现逻辑:
1. 首先定义变量n、m和count,n和m用来存储用户输入的区间范围,count用来存储区间内素数的个数。
2. 定义一个函数isPrime,用来判断一个数是否为素数,isPrime函数的实现方法为:如果这个数小于等于1,则不是素数;否则从2到i的平方根循环判断是否存在因子,如果存在因子,则不是素数,返回false;否则是素数,返回true。
3. 通过scanf函数获取用户输入的数n和m。
4. 使用for循环遍历区间内的每个数,如果这个数是素数,则将count加1。
5. 最后使用printf函数输出结果。
例如,如果用户输入n为2,m为20,则程序输出结果为:
```
请输入n和m:2 20
在区间[2,20]中有8个素数
```
阅读全文