③用C语言计算并输出1000以内最大的10个素数以及它们的和。
时间: 2025-01-27 19:16:35 浏览: 52
在C语言中,我们可以使用Sieve of Eratosthenes算法来找出一定范围内所有的素数。以下是实现这个功能的一个简单示例:
```c
#include <stdio.h>
#include <stdbool.h>
#define LIMIT 1000
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
void print_primes(int limit) {
bool primes[LIMIT + 1] = {true}; // 初始化所有数字为质数
primes[0] = primes[1] = false;
for (int i = 2; i * i <= LIMIT; i++) {
if (primes[i]) {
for (int j = i * i; j <= LIMIT; j += i)
primes[j] = false;
}
}
int count = 0, num = 2;
printf("The first 10 prime numbers within 1000 are:\n");
while (count < 10 && num <= LIMIT) {
if (primes[num])
printf("%d ", num), count++;
num++;
}
int sum = 0;
printf("\nAnd their sum is: %d\n", sum_primes(LIMIT)); // 另外一个函数求和
}
// 简单的求和函数
int sum_primes(int limit) {
int sum = 0;
for (int i = 2; i <= limit; i++) {
if (is_prime(i))
sum += i;
}
return sum;
}
int main() {
print_primes(1000);
return 0;
}
```
这段代码首先创建了一个布尔数组表示从1到LIMIT的每个数是否为质数,然后使用Sieve of Eratosthenes算法筛选出质数。接下来,它找出前10个质数并输出,同时计算这10个质数的和。
阅读全文
相关推荐

















