用C语言求100到200的素数之和
时间: 2023-06-01 13:05:05 浏览: 120
您好,我能够回答您的问题。请看下面的代码:
#include <stdio.h>
int is_prime(int n) {
if (n <= 1) return 0; // 不是素数
if (n <= 3) return 1; // 2和3是素数
if (n % 2 == 0 || n % 3 == 0) return 0; // 排除2和3的倍数
for (int i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return 0;
}
}
return 1;
}
int main() {
int sum = 0;
for (int i = 100; i <= 200; i++) {
if (is_prime(i)) {
sum += i;
}
}
printf("100到200的素数之和为:%d", sum);
return 0;
}
运行结果为:100到200的素数之和为:1060
希望能够帮到您。
相关问题
c语言求100到200的素数
以下是三种C语言求100到200的素数的方法:
1. 第一种方法:
```c
#include <stdio.h>
void main() {
int n;
for (int i = 100; i <= 200; i++) {
for (n = 2; n <= i; n++) {
if (i % n == 0) break;
}
if (i == n) {
printf("素数:%d\n", i);
}
}
}
```
2. 第二种方法:
```c
#include <stdio.h>
void main() {
int n;
for (int i = 101; i <= 200; i += 2) {
for (n = 2; n <= i; n++) {
if (i % n == 0) break;
}
if (i == n) {
printf("素数:%d\n", i);
}
}
}
```
3. 第三种方法:
```c
#include <stdio.h>
#include <math.h>
void main() {
int n;
for (int i = 101; i <= 200; i += 2) {
int limit = sqrt(i) + 1;
for (n = 2; n <= limit; n++) {
if (i % n == 0) break;
}
if (n > limit) {
printf("素数:%d\n", i);
}
}
}
```
c语言求100到200之间的素数之和
下面是一个求100到200之间素数之和的C语言程序:
```c
#include <stdio.h>
int main() {
int i, j, sum = 0;
for (i = 100; i <= 200; i++) {
int is_prime = 1;
for (j = 2; j < i; j++) {
if (i % j == 0) {
is_prime = 0;
break;
}
}
if (is_prime == 1) {
sum += i;
}
}
printf("100到200之间素数的和为:%d", sum);
return 0;
}
```
程序的思路是,首先从100循环到200,对于每个数,判断它是否是素数。如果是素数,则将其加入总和中,最后输出总和。判断素数的方法是,从2到该数的前一个数,逐个尝试是否能够整除该数,如果有能够整除的数,则该数不是素数。
阅读全文