C语言从键盘输入两个正整数a和b之间素数的个数,输出素数个数以及这些素数之和(要求定义并调用函数isprime)判断一个整数是否为素数
时间: 2025-01-30 09:11:51 浏览: 62
以下是一个用C语言编写的程序,用于从键盘输入两个正整数a和b之间素数的个数,并输出这些素数的个数以及它们的和。程序中定义并调用了一个函数`isprime`来判断一个整数是否为素数。
```c
#include <stdio.h>
#include <math.h>
// 函数声明:判断一个整数是否为素数
int isprime(int n);
int main() {
int a, b;
int i, count = 0, sum = 0;
// 从键盘输入两个正整数a和b
printf("请输入两个正整数a和b(a < b):");
scanf("%d %d", &a, &b);
// 检查输入的合法性
if (a >= b) {
printf("输入错误,请确保a < b。\n");
return 1;
}
// 遍历a到b之间的所有整数
for (i = a; i <= b; i++) {
if (isprime(i)) {
count++;
sum += i;
}
}
// 输出结果
printf("在%d到%d之间有%d个素数,它们的和是%d。\n", a, b, count, sum);
return 0;
}
// 函数定义:判断一个整数是否为素数
int isprime(int n) {
if (n <= 1) {
return 0; // 1及以下的数不是素数
}
if (n == 2) {
return 1; // 2是素数
}
if (n % 2 == 0) {
return 0; // 偶数不是素数
}
int i;
for (i = 3; i <= sqrt(n); i += 2) {
if (n % i == 0) {
return 0; // 能被整除的数不是素数
}
}
return 1; // 剩下的数是素数
}
```
这个程序首先从键盘输入两个正整数a和b,然后检查输入的合法性。接下来,程序遍历从a到b之间的所有整数,调用`isprime`函数判断每个整数是否为素数。如果是素数,则计数器`count`加1,并将该素数加到`sum`中。最后,程序输出素数的个数和它们的和。
阅读全文
相关推荐


















