用c语言输出 1-100之间所有素数,并求和的
时间: 2023-06-08 12:04:25 浏览: 410
以下是解答:
```
#include <stdio.h>
int is_prime(int n) {
if (n < 2) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (is_prime(i)) {
printf("%d ", i);
sum += i;
}
}
printf("\nsum = %d\n", sum);
return 0;
}
```
本程序中用到了一个函数 `is_prime`,它的作用是判断一个数是否为素数。为了判断一个数 `n` 是否为素数,只需要从 2 到 $\sqrt{n}$ 都不能整除 `n`,那么 `n` 就是素数。
相关问题
C语言输出 1-100之间所有素数,并求和。素数是只能被1和自身整除的整数,注意1不是素数。
好,下面是C语言实现。
```c
#include <stdio.h>
#include <math.h>
int is_prime(int num) {
if (num <= 1) {
return 0;
}
int i;
for (i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int sum = 0;
int count = 0;
for (int i = 2; i <= 100; i++) {
if (is_prime(i)) {
printf("%d ", i);
sum += i;
count++;
}
}
printf("\n素数个数为:%d\n", count);
printf("素数和为:%d\n", sum);
return 0;
}
```
程序中的`is_prime`函数用于判断一个数是否为素数,如果是素数返回1,否则返回0。主函数中使用for循环遍历1到100之间的所有整数,对每个整数调用`is_prime`函数判断是否为素数,如果是素数,则输出该数并将其加入素数的总和中。最后输出素数的个数和总和。
C语言输出 1-100之间所有素数,并求和。素数是只能被1和自身整除的整数,注意1不是素数。 每个素数的输出格式:"%d\n" 求和输出格式:"sum of prime numbers:%d\n"
以下是输出1-100之间所有素数并求和的C语言代码:
```c
#include <stdio.h>
int main() {
int i, j, sum = 0, is_prime;
for (i = 2; i <= 100; i++) {
is_prime = 1; // 假设i是素数
for (j = 2; j < i; j++) {
if (i % j == 0) { // i能被j整除,说明i不是素数
is_prime = 0;
break;
}
}
if (is_prime == 1) { // 如果i是素数
printf("%d\n", i);
sum += i;
}
}
printf("sum of prime numbers:%d\n", sum); // 输出所有素数的和
return 0;
}
```
运行结果如下:
```
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
sum of prime numbers:1060
```