修改后的代码如下:

#include <stdio.h>

int is_prime(int n)
{
    if (n == 1) {
        return 0;
    }
    for (int i = 2; i * i <= n; i++) {
        if (n % i == 0) {
            return 0;
        }
    }
    return 1;
}

int main()
{
    // 打印100-200之间的素数
    for (int i = 100; i <= 200; i++) {
        // 判断i是否为素数
        if (is_prime(i) == 1) {
            printf("%d\n", i);
        }
    }
    return 0;
}

修改说明:

  1. 在 is_prime 函数中,增加了对 n = 1 的判断,因为 1 不是素数。
  2. 在 is_prime 函数中,循环判断条件改为 i * i <= n,这样可以减少循环次数,提高效率。
  3. 在主函数中,修正了判断语句 if (is_prime(i) == 1) 的结尾多余的分号。

原文地址: https://www.cveoy.top/t/topic/pBR1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录