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

(图片来源网络,侵删)
#include <stdio.h>
#include <stdbool.h>
// 函数声明
bool isPrime(int num);
int main() {
printf("100到200之间的素数有:\n");
for (int i = 100; i <= 200; i++) {
if (isPrime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
// 判断一个数是否为素数
bool isPrime(int num) {
if (num <= 1) {
return false;
}
// 检查从2到sqrt(num)的所有整数
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
代码说明:
-
isPrime函数:用于判断一个数是否为素数
- 如果数字小于等于1,直接返回false
- 检查从2到该数平方根的所有整数是否能整除该数
- 如果能被整除,则不是素数,返回false
- 否则是素数,返回true
-
main函数:
- 遍历100到200之间的所有整数
- 调用isPrime函数判断每个数是否为素数
- 如果是素数,则打印该数
优化版本(更高效):
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
bool isPrime(int num);
int main() {
printf("100到200之间的素数有:\n");
for (int i = 100; i <= 200; i++) {
if (isPrime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
bool isPrime(int num) {
if (num <= 1) return false;
if (num == 2) return true;
if (num % 2 == 0) return false;
int sqrtNum = (int)sqrt(num) + 1;
for (int i = 3; i <= sqrtNum; i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
这个优化版本:
- 排除了所有偶数(除了2)
- 只检查奇数因子
- 使用math.h中的sqrt函数计算平方根
运行结果将输出100到200之间的所有素数,每个素数后面跟一个空格。

(图片来源网络,侵删)

(图片来源网络,侵删)
