C语言如何找出100到200之间的素数?

99ANYc3cd6
预计阅读时长 6 分钟
位置: 首页 C语言 正文

C语言输出100到200之间的素数

以下是使用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;
}

代码说明:

  1. 程序使用嵌套循环结构,外层循环遍历100到200之间的每个数
  2. 内层循环检查当前数是否能被2到其平方根之间的任何数整除
  3. 使用flag变量标记当前数是否为素数
  4. 如果内层循环没有找到能整除的数,则输出该素数

优化版本(更高效):

#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;
}

这个优化版本:

  1. 将素数检查封装为单独的函数
  2. 排除了所有偶数(除了2)
  3. 只检查到平方根,且步长为2(跳过偶数)

运行结果会输出100到200之间的所有素数。

c语言100到200之间的素数
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
c语言程序设计 学习指导 答案
« 上一篇 01-11
服务器如何搭建织梦系统?
下一篇 » 01-11
取消
微信二维码
支付宝二维码

目录[+]