素数筛法讲解

Posted theshorekind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了素数筛法讲解相关的知识,希望对你有一定的参考价值。

首先看一看判断素数的方法,就是看一个数n能否被2~n-1内的数整除,如果能整除就不是素数,反之则是,直接上优化后的代码:

1 bool isprime(int x)
2 {
3     for(int i=2;i<=sqrt(x);i++)
4     {
5         if(x%i==0)
6         return false;
7     }
8     return true;
9 }

对于一些题目,需要判断的素数非常大且多,用这种方法的话时间复杂度是绝不允许的,因此就有了素数筛法,顾名思义,是提前把素数筛选出来,这样之后判断的时候就快了。

先说一下素数筛法的原理:

                   
                   
                   
                   
                   

 

以上是关于素数筛法讲解的主要内容,如果未能解决你的问题,请参考以下文章

素数的筛法

素数筛法(Eratosthenes筛法)

练习筛法遍历素数(Java)

筛法求素数

Eratosthenes筛法 快速求素数

线性筛