c语言100以内素数求和
时间: 2024-01-06 13:04:34 浏览: 133
以下是使用C语言求解100以内素数之和的代码示例:
```c
#include <stdio.h>
int isPrime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int sum = 0;
for (int i = 2; i <= 100; i++) {
if (isPrime(i)) {
sum += i;
}
}
printf("100以内素数之和为:%d\n", sum);
return 0;
}
```
相关问题
c语言如何用do while循环求出100以内的质数有多少个以及求和
在C语言中,使用`do while`循环求出100以内质数的个数以及它们的和可以通过以下步骤实现:
1. 初始化一个变量用于标记是否为质数,通常设置为1表示是质数。
2. 使用`do while`循环遍历2到99(因为1不是质数)。
3. 在每次循环内部,再使用一个`do while`循环检查当前数字是否有除了1和它本身之外的因数。如果没有,则是质数。
4. 如果当前数字是质数,则将质数个数加1,并将质数加到总和中。
5. 循环结束后,输出质数的个数以及它们的总和。
下面是一个示例代码:
```c
#include <stdio.h>
int main() {
int count = 0; // 质数个数
int sum = 0; // 质数之和
int num = 2; // 当前检查的数字,从2开始到99
do {
int isPrime = 1; // 假设当前数字是质数
int i = 2; // 从2开始检查因数
do {
if (num % i == 0) { // 如果找到因数,则不是质数
isPrime = 0;
break;
}
i++; // 检查下一个可能的因数
} while (i * i <= num); // 只需检查到sqrt(num),因为如果一个数不是质数,它必有一个因数不大于它的平方根
if (isPrime) { // 如果是质数
count++; // 质数个数加1
sum += num; // 质数之和加上当前质数
}
num++; // 检查下一个数字
} while (num <= 99);
printf("100以内的质数有%d个,它们的和为%d\n", count, sum);
return 0;
}
```
运行上述代码将会得到100以内质数的个数以及它们的总和。
C语言求500以内的10个最大素数及其和并分别输出
下面是一个求解500以内10个最大素数并输出它们以及它们的和的C语言代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int count = 0, sum = 0;
printf("500以内的10个最大素数为:\n");
for (int i = 500; i >= 2 && count < 10; i--) {
if (is_prime(i)) {
printf("%d ", i);
count++;
sum += i;
}
}
printf("\n它们的和为:%d\n", sum);
return 0;
}
```
这个程序中,我们使用了一个 `is_prime` 函数来判断一个数是否为素数,然后从500往下枚举,如果发现一个素数就输出并求和,直到输出了10个素数或者枚举到了2为止。最后输出这10个素数的和。
阅读全文
相关推荐












