C语言利用函数计算素数个数并且求和
时间: 2024-12-28 08:37:08 浏览: 28
在C语言中,我们可以编写一个函数来计算指定范围内素数的数量,并且另外编写一个函数用于计算这些素数的和。以下是简单的示例:
首先,我们需要创建一个函数`is_prime`用于判断一个数字是否是素数:
```c
#include <stdbool.h>
// 判断是否为素数
bool is_prime(int num) {
if (num <= 1) return false; // 1不是素数
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
```
接下来,我们编写另一个函数`count_and_sum_primes`,它接收一个范围的上限,然后计算并返回这个范围内素数的数量以及它们的和:
```c
#include <stdio.h>
#include <stdlib.h> // 引入整型数组
// 计算指定范围内的素数数量和总和
void count_and_sum_primes(int limit, int* primes, int* prime_count, int* prime_sum) {
*prime_count = 0;
*prime_sum = 0;
for (int num = 2; num <= limit; num++) { // 从2开始,因为1不是素数
if (is_prime(num)) {
(*prime_count)++;
*prime_sum += num;
primes[(*prime_count)-1] = num; // 存储素数到数组中
}
}
}
int main() {
int range_limit = 50; // 示例范围
int primes[100]; // 素数数组假设最多有100个素数
int prime_count, prime_sum;
count_and_sum_primes(range_limit, primes, &prime_count, &prime_sum);
printf("素数个数: %d\n", prime_count);
printf("素数之和: %d\n", prime_sum);
return 0;
}
```
在这个程序中,`main`函数中会调用`count_and_sum_primes`函数来计算和存储范围内的素数,然后打印结果。
阅读全文