c语言编程求1-100间所有素数的和
时间: 2023-05-21 21:01:42 浏览: 160
以下是求1-100间所有素数的和的C语言代码:
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 2; i <= 100; i++) {
int is_prime = 1;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
is_prime = 0;
break;
}
}
if (is_prime) {
sum += i;
}
}
printf("1-100间所有素数的和为:%d\n", sum);
return 0;
}
输出结果为:1-100间所有素数的和为:1060
相关问题
C语言编程:求100-200之间所有素数之和。
好的,这个问题我可以回答。下面是C语言代码实现:
```c
#include <stdio.h>
int main() {
int sum = 0;
for(int i = 100; i <= 200; i++) {
int flag = 1;
for(int j = 2; j <= i / 2; j++) {
if(i % j == 0) {
flag = 0;
break;
}
}
if(flag == 1) {
sum += i;
}
}
printf("100-200之间所有素数之和为:%d\n", sum);
return 0;
}
```
代码解析:
1. 首先定义一个变量 sum 来保存素数之和,初值为 0。
2. 然后使用 for 循环遍历 100 到 200 之间的所有数字。
3. 对于每个数字,使用一个 flag 变量来标记是否是素数。假设当前数字是 i,如果 i 能够被从 2 到 i/2 中的任何一个数整除,那么就不是素数,将 flag 设为 0,跳出内层循环。
4. 如果 flag 仍为 1,说明当前数字是素数,将其加入 sum 中。
5. 最后输出 sum 的值即可。
希望这个回答对你有帮助!
c语言编程求1~100的所有素数
以下是两种C语言编程求1~100的所有素数的例子:
1. 暴力枚举法
```c
#include <stdio.h>
int main() {
int i;
for(i = 2; i <= 100; i++) { // 1不是素数
int j = 0;
for(j = 2; j <= i; j++) { // 从2~i取余,如果余数为0则不是素数,跳出循环
if(i % j == 0) {
break;
}
}
if(i == j) { // 如果j=i,则i是素数
printf("%d ", i);
}
}
return 0;
}
```
2. 优化后的算法
```c
#include <stdio.h>
#include <math.h>
int main() {
int i = 0;
for(i = 2; i <= 100; i++) {
int j = 0;
for(j = 2; j <= sqrt(i * 1.0); j++) { // 只需判断2~sqrt(i)之间的数是否能整除i
if(i % j == 0) {
break;
}
}
if(j > sqrt(i * 1.0)) { // 如果j>sqrt(i),则i是素数
printf("%d ", i);
}
}
return 0;
}
```