现在给定一个数字区间,X星大学学生需要计算其中有多少个素数。请你编写一个程序,计算区间中素数的个数。多组输入用C语言。输出为一次性输出
时间: 2024-02-21 16:56:51 浏览: 66
好的,这是一个稍微有点难度的问题,需要对上一题进行改进。
我们可以先把每组输入的区间内素数的个数都计算出来,然后再一次性输出所有结果。具体代码如下:
```c
#include <stdio.h>
int is_prime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int count_primes(int left, int right) {
int cnt = 0;
for (int i = left; i <= right; i++) {
if (is_prime(i)) {
cnt++;
}
}
return cnt;
}
int main() {
int left, right;
int cnt[100], n = 0;
while (scanf("%d %d", &left, &right) == 2) {
cnt[n++] = count_primes(left, right);
}
for (int i = 0; i < n; i++) {
printf("%d\n", cnt[i]);
}
return 0;
}
```
这样,我们就可以一次性输出所有输入区间中的素数个数啦。
阅读全文