输出n以内最大的10个素数及其之和,如果n以内最大素数不超过10个,则按照实际个数输出,用c语言代码怎么写
时间: 2024-11-05 08:24:22 浏览: 2
在C语言中,你可以使用Sieve of Eratosthenes算法来找到一定范围内的所有素数。以下是实现这个功能的一个简单示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
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 find_primes(int n, int primes[], int count) {
int current_num = 2;
while (count < 10 && current_num <= n) {
if (is_prime(current_num)) {
primes[count++] = current_num;
}
current_num++;
}
}
int main() {
int n;
printf("请输入一个整数n: ");
scanf("%d", &n);
int primes[10];
int prime_count = 0;
find_primes(n, primes, prime_count);
printf("\n在%d以内的前%zd个素数是:\n", n, prime_count);
for (int i = 0; i < prime_count; i++) {
printf("%d ", primes[i]);
}
if (prime_count > 0) {
int sum = 0;
printf("\n它们的和是: %d\n", sum_primes(primes, prime_count));
} else {
printf("\n没有找到大于1的素数。\n");
}
return 0;
}
// 辅助函数计算素数和
int sum_primes(int primes[], int count) {
int sum = 0;
for (int i = 0; i < count; i++) {
sum += primes[i];
}
return sum;
}
```
在这个程序中,`is_prime` 函数用于检查一个数字是否是素数,`find_primes` 函数找出n范围内前10个素数并存储到数组中,然后主函数会打印出这些素数以及它们的和。
阅读全文