输入两个正整数m和n(1<=m<n<=500)统计并输出m和n之间的素数个数以及这些素数的和。 输入格式: 输入两个正整数m和n(1<=m<n<=500)。 输出格式: 输出m和n之间的素数个数以及这些素数的和。用for循环C语言
时间: 2024-12-23 19:21:24 浏览: 1
在C语言中,你可以使用for循环和嵌套循环来解决这个问题。首先,我们需要一个判断是否为素数的函数,然后遍历m到n范围内的每个数字,如果它是素数就计数并累加其值。以下是简单的步骤:
```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 count_and_sum_primes(int m, int n) {
int prime_count = 0;
long long prime_sum = 0;
for (int i = m; i <= n; i++) {
if (is_prime(i)) {
prime_count++;
prime_sum += i;
}
}
printf("Number of primes between %d and %d: %d\n", m, n, prime_count);
printf("Sum of primes between %d and %d: %lld\n", m, n, prime_sum);
}
int main() {
int m, n;
scanf("%d %d", &m, &n); // 输入m和n
count_and_sum_primes(m, n); // 调用函数计算结果
return 0;
}
```
在这个程序中,`is_prime`函数用于检查一个数是否为素数,而`count_and_sum_primes`函数则负责统计并求和m到n之间的素数。注意这里使用了`long long`数据类型来存储素数之和,以防数值过大导致溢出。
阅读全文