输入两个均大于1的正整数,求两个正整数之间的所有素数的个数及素数均值,个数为0时不要求均值。(均值保留小数点后两位有效数字)。注:素数又称质数,是指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数
时间: 2023-08-08 10:12:35 浏览: 105
求任意两个正整数之间的素数
好的,这是一道编程题,我会尽力协助你完成。
思路:
首先需要编写一个函数来判断一个数是否为素数。接着,我们可以使用双重循环来遍历给定的两个正整数之间的所有数,统计素数的个数,并累计素数的和。最后根据素数的个数计算素数均值。
代码实现:
```c
#include <stdio.h>
#include <math.h>
// 判断一个数是否为素数
int is_prime(int n)
{
if (n < 2) {
return 0;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main()
{
int m, n;
int count = 0;
double sum = 0;
printf("请输入两个正整数,用空格隔开:");
scanf("%d %d", &m, &n);
// 交换 m 和 n,保证 m < n
if (m > n) {
int temp = m;
m = n;
n = temp;
}
for (int i = m; i <= n; i++) {
if (is_prime(i)) {
count++;
sum += i;
}
}
if (count == 0) {
printf("素数个数:%d\n", count);
} else {
printf("素数个数:%d,素数均值:%.2f\n", count, sum / count);
}
return 0;
}
```
注意:需要用到 math.h 头文件中的 sqrt() 函数来计算一个数的平方根。
阅读全文