c语言求出 2 到 m 之间 ( 含 m,m<=1000) 所有素数。 输入 正整数m 输出 从小到大的所有素数,及个数 例如: 输入 Result 10 2 3 5 7 4
时间: 2024-10-28 16:11:43 浏览: 32
在C语言中,我们可以编写一个函数来找出2到m之间的素数。首先,我们需要一个辅助函数`is_prime()`来检查一个数是否为素数,然后遍历从2到m的每个数,如果它是素数则打印出来并增加计数器。下面是一个简单的示例:
```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++) { // 只需检查到sqrt(num),效率提升
if (num % i == 0)
return false;
}
return true;
}
// 主函数求解范围内的素数
void print_primes(int m) {
int count = 0; // 计数器记录素数个数
printf("%d ", 2); // 首先输出2,因为它是唯一的偶数素数
for (int i = 3; i <= m; i += 2) { // 只需要检查奇数
if (is_prime(i))
printf("%d ", i), count++;
}
printf("\n总数:%d\n", count);
}
int main() {
int m;
scanf("%d", &m);
print_primes(m);
return 0;
}
```
当你运行这个程序并输入一个不超过1000的正整数m,它会输出该范围内所有的素数以及它们的个数。
阅读全文