求出[2,200000]以内所有素数之和。c语言
时间: 2024-05-15 20:14:26 浏览: 12
以下是求解素数之和的 C 语言代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int sum = 0;
for (int i = 2; i <= 200000; i++) {
if (is_prime(i)) {
sum += i;
}
}
printf("2到200000之间所有素数之和为:%d\n", sum);
return 0;
}
```
程序中的 `is_prime` 函数用于判断一个数是否是素数。如果一个数小于 2,则它不是素数;否则从 2 到 sqrt(n) 的范围内枚举每个数,如果存在一个数能整除该数,则它不是素数。如果枚举完毕还没有找到能整除该数的数,则它是素数。
在 `main` 函数中,我们从 2 开始枚举到 200000,对于每个数,如果它是素数,则将其加入到 `sum` 变量中。最终输出 `sum` 即为所求的素数之和。
相关问题
求出[2,200000]以内所有素数之和。C语言
下面是一个求解[2, 200000]范围内所有素数之和的C语言程序:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n)
{
if (n < 2) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main()
{
int sum = 0;
for (int i = 2; i <= 200000; i++) {
if (is_prime(i)) {
sum += i;
}
}
printf("The sum of all prime numbers between 2 and 200000 is %d.\n", sum);
return 0;
}
```
程序中使用了一个名为`is_prime`的函数来判断一个数是否为素数。该函数通过从2到该数的平方根之间枚举每个整数来判断是否存在该数的因子,如果存在则说明该数不是素数。在主函数中,使用一个循环来枚举[2, 200000]范围内的每个整数,如果该整数是素数,则将其累加到变量`sum`中。最后输出`sum`即可得到结果。
C语言求200000以内所有素数和
以下是使用C语言求200000以内所有素数和的代码:
```c
#include <stdio.h>
int main()
{
int i, j, n;
long long sum = 0; // 用于存储素数的和
printf("请输入一个整数n(n <= 200000):");
scanf("%d", &n);
// 判断2~n之间的所有数是否为素数
for (i = 2; i <= n; i++) {
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) { // 如果i能被j整除,则i不是素数
break;
}
}
if (j > i / 2) { // 如果i不能被2~i/2之间的任何数整除,则i是素数
sum += i; // 将素数累加到sum中
}
}
printf("200000以内所有素数的和为:%lld\n", sum);
return 0;
}
```
该程序先从用户输入一个整数n,然后依次判断2~n之间的每个数是否为素数,如果是素数就将其累加到sum中。最后输出200000以内所有素数的和。