c语言判断素数代码(c语言判断素数代码怎么写)-捕鱼10元起上10元下

什么是素数

素数是指在大于1的正整数中,除了1和它本身以外,不能被其他正整数整除的数。

比如2、3、5、7、11、13等都是素数,而4、6、8、9、10等都不是素数。

c语言判断素数代码(c语言判断素数代码怎么写)

判断素数的思路

判断一个数n是否为素数,可以从2开始,一直判断到n-1。如果在这个范围内没有可以整除n的数,那么n就是素数。

但是这样的算法效率较低,因为n/2到n-1这些数已经重复判断了一遍。我们可以从2开始判断到sqrt(n),因为如果n能够被一个大于sqrt(n)的数整除,那么它同样也能够被小于sqrt(n)的数整除。

因此,判断素数的代码如下:

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

判断素数的优化

虽然上面的代码已经能够正确地判断素数,但是它还是有优化的空间。

其中一个优化方法就是从3开始判断,并且判断奇数即可,因为偶数都能够被2整除,不可能是素数。

代码如下:

int is_prime(int n) {
    // 特判2
    if (n == 2) {
        return 1;
    }
    // 特判偶数
    if (n % 2 == 0 || n <= 1) {
        return 0;
    }
    // 循环判断奇数
    for (int i = 3; i * i <= n; i  = 2) {
        if (n % i == 0) {
            return 0;
        }
    }
    return 1;
}

这样就能够进一步减少重复判断,提高代码的效率。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/cpp7fca.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及捕鱼10元起上10元下的版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的捕鱼10元起上10元下的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月16日 下午3:41
下一篇 2023年4月16日 下午3:42

猜你喜欢

网站地图