判断素数/质数

#include <bits/stdc++.h>

using namespace std;

bool isprim(int a)
{
    if(a < 2) return false;
    //if(a == 2 || a == 3) return true;//判断2,3快一点,需要把i的初始值改为5
    for(int i = 2;i <= sqrt(a);++i)
        if(a % i == 0) return false;
    return true;
}

int main()
{
    for(int i = 0;i < 100;++i)
        if(isprim(i))
            cout << i << " ";
    return 0;
}

网上找了一圈发现了一个优化的点:即大于5的素数都在6的倍数的两侧,如5,6,7,5和7就是素数11,12,13,11和13就是素数,但是在6的倍数的两侧的不一定是素数,因此还需要判断一次

优化代码如下:

#include <bits/stdc++.h>

using namespace std;

bool isprim(int a)
{
    if(a < 2) return false;
    if(a < 6) return true;
    if(a%6 != 1 && a%6 != 5) return false;
    int sq = sqrt(a);//赋值防止多次调用sqrt函数
    for(int i = 5;i <= sq;i += 6)//要 % 6*k-1和6*k+1是因为所有素数的集合是6*k-1和6*k+1的子集(包含关系),而非素数一定可以被素数整除
        if(a % i == 0 || a%(i+2) == 0) return false;//为什么要检查i+2,因为当i=5时5 = 6-1而i+2=6+1应该检查是否能被其他数检查
    return true;
}

int main()
{
    for(int i = 0;i < 100;++i)
        if(isprim(i))
            cout << i << " ";
    return 0;
}

优化后运行速度提升了一个档次

相关推荐

  1. 判断质数素数):

    2024-06-07 02:34:04       48 阅读
  2. 判断素数/质数

    2024-06-07 02:34:04       29 阅读
  3. C 练习实例33 - 质数素数判断

    2024-06-07 02:34:04       58 阅读
  4. 判断素数的方法

    2024-06-07 02:34:04       27 阅读
  5. C语言 判断素数

    2024-06-07 02:34:04       24 阅读
  6. 判断素数的方法大全

    2024-06-07 02:34:04       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 02:34:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 02:34:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 02:34:04       82 阅读
  4. Python语言-面向对象

    2024-06-07 02:34:04       91 阅读

热门阅读

  1. Loguru,一个 Python 日志神器

    2024-06-07 02:34:04       31 阅读
  2. MySQL学习——从命令行调用MySQL 程序

    2024-06-07 02:34:04       24 阅读
  3. 【视频转码】ZLMediaKit漏洞报告的问题

    2024-06-07 02:34:04       29 阅读
  4. 2024-05-30 vscode python不能调试

    2024-06-07 02:34:04       31 阅读
  5. 【WPF编程宝典】第9讲:几何图形

    2024-06-07 02:34:04       30 阅读
  6. 设计模式之状态模式

    2024-06-07 02:34:04       29 阅读
  7. 展锐8541E配置USB ACM

    2024-06-07 02:34:04       30 阅读
  8. mongodb 编码格式 Detected BSON

    2024-06-07 02:34:04       28 阅读
  9. element-plus datePicker 如何输出时间戳

    2024-06-07 02:34:04       31 阅读
  10. 0098__gconf、dconf系统配置编辑器

    2024-06-07 02:34:04       30 阅读