利用C语言编写求给定范围内素数的函数,要求把所有的素数存放到数组中;然后调用该函数求数组中所有素数之和.
时间: 2024-09-15 20:02:02 浏览: 67
c语言经典题型
在C语言中,我们可以创建一个函数来找出给定范围内的素数,并将它们存储到数组中。首先,我们需要一个函数`is_prime()`来检查一个数字是否是素数,接着定义主函数`find_primes_and_sum()`来进行整个过程。
```c
#include <stdio.h>
// 检查是否是素数的辅助函数
int is_prime(int num) {
if (num <= 1)
return 0;
for (int i = 2; i * i <= num; i++) { // 只需检查到sqrt(num)
if (num % i == 0)
return 0;
}
return 1;
}
// 主函数,找出并存储指定范围内素数到数组中,并计算其和
void find_primes_and_sum(int start, int end, int primes[], int* sum) {
int count = 0;
for (int i = start; i <= end; i++) {
if (is_prime(i)) {
primes[count] = i;
count++;
(*sum)++;
}
}
primes[count] = 0; // 设置数组结尾标记,因为实际元素个数为count
}
int main() {
int start_range = 2, end_range = 50; // 示例范围
int primes[100]; // 假设我们能存储100个素数
int sum_of_primes = 0;
find_primes_and_sum(start_range, end_range, primes, &sum_of_primes);
printf("Prime numbers in the range %d to %d are:\n", start_range, end_range);
for (int i = 0; primes[i] != 0; i++) {
printf("%d ", primes[i]);
}
printf("\nThe sum of prime numbers is: %d\n", sum_of_primes);
return 0;
}
```
阅读全文