用C语言编写从键盘输入两个正整数a和b,统计a和b之间素数的个数,输出素数的个数以及素数之和要求定义并调用函数isprime
时间: 2024-12-18 07:17:52 浏览: 2
统计给定整数M和N区间内素数的个数并对它们求和-C语言代码
在C语言中,我们可以编写一个主函数,让用户输入两个正整数a和b,然后定义一个辅助函数isprime用于判断一个数是否为素数。接着遍历a到b之间的所有数,如果是素数则增加计数器并累加其值。下面是一个完整的示例:
```c
#include <stdio.h>
#include <stdbool.h>
// 判断一个数是否为素数
bool isprime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) { // 只需检查到√n即可
if (num % i == 0) {
return false;
}
}
return true;
}
// 统计并计算素数之和
void count_primes(int start, int end, int* prime_count, int* prime_sum) {
*prime_count = 0;
*prime_sum = 0;
for (int i = start; i <= end; i++) {
if (isprime(i)) {
(*prime_count)++;
(*prime_sum)++;
}
}
}
int main() {
int a, b;
printf("请输入两个正整数a和b:");
scanf("%d %d", &a, &b);
// 定义并初始化计数器和总和
int prime_count = 0;
int prime_sum = 0;
// 调用函数计算
count_primes(a, b, &prime_count, &prime_sum);
printf("在区间 [%d, %d]内,共有%d个素数。\n", a, b, prime_count);
printf("这些素数之和为:%d。\n", prime_sum);
return 0;
}
```
当你运行这个程序时,它会提示你输入两个正整数a和b,然后计算并输出这两个数之间(包括a和b)的素数个数及其和。
阅读全文