给定n(n≤100)个正整数,所有正整数均≤1000000,求其中所有素数的和c语言
时间: 2024-12-10 07:33:56 浏览: 13
输出n以内的所有素数 c语言:找出N以内的所有素数
在C语言中,求给定范围内正整数的素数之和,可以采用埃拉托斯特尼筛法(Sieve of Eratosthenes)或者简单的遍历检查每个数是否为素数。以下是基于简单遍历的一个示例:
```c
#include <stdio.h>
int is_prime(int num) {
if (num <= 1) return 0;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return 0;
}
return 1;
}
int sum_of_primes(int n, int limit) {
int sum = 0;
for (int i = 2; i <= limit && i <= n; i++) { // 遍历从2到limit范围内的数
if (is_prime(i)) {
sum += i; // 如果是素数,累加到总和
}
}
return sum;
}
int main() {
int n, max_limit;
printf("请输入包含的正整数的数量(n): ");
scanf("%d", &n);
printf("请输入最大值(<=1000000): ");
scanf("%d", &max_limit);
if (n > 100 || max_limit > 1000000) {
printf("输入错误,请确保n <= 100 和 max_limit <= 1000000.\n");
return 1;
}
int prime_sum = sum_of_primes(n, max_limit);
printf("所有小于等于%d的素数之和为: %d\n", max_limit, prime_sum);
return 0;
}
```
阅读全文