2 程序的灵魂—算法-2.2 简单算法举例-【例 2.5】

【例 2.5】对一个大于或等于 3 的正整数,判断它是不是一个素数。
算法可表示如下:
S1: 输入 n 的值
S2: i=2
S3: n 被 i 除,得余数 r
S4:如果 r=0,表示 n 能被 i 整除,则打印 n“不是素数”,算法结束;否则执行 S5
S5: i+1→i
S6:如果 i≤n-1,返回 S3;否则打印 n“是素数”;然后算法结束。
改进:
S6:如果i≤ n ,返回S3;否则打印n“是素数”;然后算法结束。

int main() {
    int n, i = 2;
    printf("请输入一个大于或等于3的正整数: ");
    scanf("%d", &n);

    // 算法实现
    if (n < 3) {
        printf("%d 不符合输入要求(应大于或等于3的正整数)。\n", n);
    } else if (n == 3) {
        printf("%d 是素数。\n", n);
    } else if (n % 2 == 0) {
        printf("%d 不是素数。\n", n);
    } else {
        // 从3开始检查到n本身,步长为2,因为偶数已排除
        for (; i <= n; i += 2) {
            if (n % i == 0) {
                printf("%d 不是素数。\n", n);
                return 0; // 一旦发现有因子,直接结束
            }
        }
        }
        printf("%d 是素数。\n", n);
    return 0;

    }

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 13:22:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 13:22:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 13:22:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 13:22:01       20 阅读

热门阅读

  1. 【小海实习日记】金融-现货以及合约理解

    2024-06-09 13:22:01       13 阅读
  2. 【Qt】Item Views与Item Widgets的区别

    2024-06-09 13:22:01       12 阅读
  3. qt自定义事件过滤器

    2024-06-09 13:22:01       10 阅读
  4. liunx查看日志

    2024-06-09 13:22:01       9 阅读
  5. FPGA复位:(43)复位高扇出的解决方案?

    2024-06-09 13:22:01       11 阅读
  6. vue3模板语法总结

    2024-06-09 13:22:01       9 阅读
  7. 用C++做一个跑酷游戏

    2024-06-09 13:22:01       11 阅读
  8. FPGA复位:(41)复位管脚PR报错?

    2024-06-09 13:22:01       10 阅读
  9. 逆运动学IK原理举例说明

    2024-06-09 13:22:01       8 阅读
  10. 浅谈单臂路由

    2024-06-09 13:22:01       9 阅读
  11. Vue基础篇--table的封装

    2024-06-09 13:22:01       8 阅读
  12. 数据结构——哈希表

    2024-06-09 13:22:01       8 阅读