用c语言输出 1-100之间所有素数,并求和的
时间: 2023-06-08 18:04:25 浏览: 797
以下是解答:
```
#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之间所有的素数,并求和
在C语言中,我们可以使用经典的"埃拉托斯特尼筛法"来找出1到100之间的所有素数并计算它们的和。埃拉托斯特尼筛法是一种用于找到一定范围内所有素数的有效算法。以下是实现这个功能的一个简单示例:
```c
#include <stdio.h>
void sieve_of_eratosthenes(int limit) {
int prime[limit+1], is_prime[limit+1] = {0}, sum = 0;
// 初始化所有数为质数(假设)
for (int i = 2; i <= limit; i++)
prime[i] = 1;
// 将 0 和 1 标记为非质数
prime[0] = prime[1] = 0;
for (int p = 2; p * p <= limit; p++) {
// 如果prime[p]未被标记,说明p是质数
if (prime[p]) {
// 然后将p的所有倍数标记为非质数
for (int i = p * p; i <= limit; i += p)
prime[i] = 0;
}
}
// 输出所有质数并累加
for (int p = 2; p <= limit; p++) {
if (prime[p])
printf("%d ", p);
sum += p;
}
printf("\nSum of primes from 1 to %d: %d\n", limit, sum);
}
int main() {
sieve_of_eratosthenes(100);
return 0;
}
```
当你运行这段代码,它会输出1到100之间的所有素数,并在最后显示这些素数的总和。
c语言 5-200之间所有素数和
好的,我可以帮你编写一个 C 语言程序来计算 5 到 200 之间的所有素数并求和。以下是代码示例:
```c
#include <stdio.h>
int is_prime(int n) {
if (n <= 1) {
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 = 5; i <= 200; i++) {
if (is_prime(i)) {
sum += i;
}
}
printf("5到200之间的所有素数之和为:%d\n", sum);
return 0;
}
```
首先,我们定义了一个名为 `is_prime` 的函数,用于判断一个数字是否为素数。该函数通过循环从 2 到该数字的平方根进行遍历,如果存在某个数可以整除该数字,则该数字不是素数,返回 0;否则,该数字是素数,返回 1。
接着,在 `main` 函数中,我们从 5 到 200 进行遍历,对于每个数字,如果它是素数,则把它加入到 `sum` 变量中。
最后,我们输出 `sum` 的值,即为 5 到 200 之间的所有素数的和。
希望我的回答能够帮到你!
阅读全文
相关推荐












