用c语言输出m到n间的所有素数并求和
时间: 2024-05-01 07:21:46 浏览: 144
以下是用C语言输出m到n间的所有素数并求和的代码实现:
```
#include <stdio.h>
int is_prime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m, n, sum = 0;
printf("请输入m和n:");
scanf("%d%d", &m, &n);
printf("%d到%d间的素数有:\n", m, n);
for (int i = m; i <= n; i++) {
if (is_prime(i)) {
printf("%d ", i);
sum += i;
}
}
printf("\n素数的和为:%d\n", sum);
return 0;
}
```
代码中使用了一个判断一个数是否为素数的函数 `is_prime`,然后在主函数中遍历m到n间的所有数,如果是素数则输出并累加和。
相关问题
c语言输出m到n之间的所有素数,每行5个,并求和
在C语言中,我们可以使用嵌套循环和条件判断来输出m到n之间的所有素数,并按照每行打印5个的要求分组。同时,我们会维护一个变量来计算素数的总和。以下是实现这一功能的一个示例:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
void print_primes(int m, int n) {
int sum = 0; // 计算素数总和
for (int i = m; i <= n; ++i) {
if (is_prime(i)) {
printf("%d ", i);
sum += i; // 累加素数
}
if ((i - m + 1) % 5 == 0 || i == n) { // 按每行5个输出,结束条件包括达到n或剩余不足5个
printf("\n");
}
}
printf("\nThe sum of primes from %d to %d is: %d\n", m, n, sum);
}
int main() {
int m = 5, n = 30; // 输入范围,这里以5到30为例
print_primes(m, n);
return 0;
}
```
在这个程序里,`is_prime()`函数用于检查一个数是否是素数,`print_primes()`函数负责循环遍历并按需输出和累加素数。
用c语言输出 1-100之间所有素数,并求和的
以下是解答:
```
#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` 就是素数。
阅读全文