用c语言编写输出区间[m...n]内的素数,区间范围由用户输入,并统计所输出的素数总数
时间: 2024-02-21 21:57:34 浏览: 57
以下是用C语言编写的输出区间内的素数并统计个数的代码:
```c
#include <stdio.h>
int isprime(int n) { // 判断n是否是素数
int i;
if (n < 2) { // 1不是素数
return 0;
}
for (i = 2; i * i <= n; i++) { // 判断n是否能被2~sqrt(n)之间的数整除
if (n % i == 0) {
return 0;
}
}
return 1;
}
int print_primes(int m, int n) {
int i, count = 0;
printf("区间[%d,%d]内的素数是:\n", m, n);
for (i = m; i <= n; i++) {
if (isprime(i)) { // 如果i是素数,输出它并计数
printf("%d ", i);
count++;
}
}
printf("\n");
return count;
}
int main() {
int m, n, count;
printf("请输入区间的左右端点(用空格隔开):\n");
scanf("%d%d", &m, &n);
count = print_primes(m, n);
printf("区间[%d,%d]内共有%d个素数\n", m, n, count);
return 0;
}
```
这个程序使用了两个函数。第一个函数isprime用于判断一个数是否是素数,它的实现和之前的代码是一样的。第二个函数print_primes用于输出区间[m,n]内的素数,并返回素数的个数。它使用一个for循环依次检查区间内的每一个数,如果这个数是素数,就输出它并计数。最后,在main函数中读入区间端点m和n,调用print_primes函数,输出素数并统计个数。
阅读全文