如何用C语言编写程序来求500以内的前40个素数之和,每行输出5个素数,最后输出40个素数之和的值
时间: 2024-12-19 14:27:12 浏览: 5
在C语言中,你可以使用循环和条件判断来实现这个需求。下面是一个简单的步骤描述:
1. 首先,创建一个函数`is_prime()`用于检查一个数字是否是素数。这通常通过检查该数是否能被小于它本身的数整除来完成。
```c
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;
}
```
2. 然后,定义一个变量`count`记录找到的素数个数,并初始化`sum`为0,用于存储素数之和。
```c
int count = 0;
long long sum = 0;
```
3. 使用一个for循环从2开始遍历,直到500。对于每个数,检查它是否是素数,如果是,则打印并增加计数和总和。
```c
for (int i = 2; count < 40 && i < 500; i++) {
if (is_prime(i)) {
printf("%d ", i);
count++;
sum += i;
}
// 每5个素数换行
if (count % 5 == 0)
printf("\n");
}
```
4. 最后,在循环结束后打印剩余的素数以及总和。
```c
if (count % 5 != 0)
printf("\n");
printf("\nSum of the first 40 prime numbers: %lld\n", sum);
```
完整代码示例:
```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 main() {
int count = 0;
long long sum = 0;
for (int i = 2; count < 40 && i < 500; i++) {
if (is_prime(i)) {
printf("%d ", i);
count++;
sum += i;
}
if (count % 5 == 0)
printf("\n");
}
if (count % 5 != 0)
printf("\n");
printf("Sum of the first 40 prime numbers: %lld\n", sum);
return 0;
}
```
阅读全文