C语言输出100到200之间的素数
以下是使用C语言输出100到200之间所有素数的代码:

(图片来源网络,侵删)
#include <stdio.h>
#include <math.h>
int main() {
int i, j;
int flag; // 标记是否为素数
printf("100到200之间的素数有:\n");
for (i = 100; i <= 200; i++) {
flag = 1; // 先假设当前数是素数
// 检查i是否能被2到sqrt(i)之间的数整除
for (j = 2; j <= sqrt(i); j++) {
if (i % j == 0) {
flag = 0; // 如果能整除,则不是素数
break;
}
}
// 如果flag仍为1,说明是素数
if (flag == 1) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
代码说明:
- 程序使用嵌套循环结构,外层循环遍历100到200之间的每个数
- 内层循环检查当前数是否能被2到其平方根之间的任何数整除
- 使用
flag变量标记当前数是否为素数 - 如果内层循环没有找到能整除的数,则输出该素数
优化版本(更高效):
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int num) {
if (num <= 1) return false;
if (num == 2) return true;
if (num % 2 == 0) return false;
for (int i = 3; i * i <= num; i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
printf("100到200之间的素数有:\n");
for (int i = 100; i <= 200; i++) {
if (isPrime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
这个优化版本:
- 将素数检查封装为单独的函数
- 排除了所有偶数(除了2)
- 只检查到平方根,且步长为2(跳过偶数)
运行结果会输出100到200之间的所有素数。

(图片来源网络,侵删)
