码迷,mamicode.com
首页 > 其他好文 > 详细

筛法求素数

时间:2019-04-13 00:47:42      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:sqrt   class   prime   code   算法   +=   style   基础   als   

弱鸡准备校赛的时候看了一下最简单的筛法求素数:

开一个bool数组 奇数为true 偶数为false 因为偶数肯定不是素数嘛

然后遍历 如果a[i]==true 就把所有的i的倍数全设为 false

如此遍历到 sqrt(n)就将所有的小于n的素数全部筛出来了

代码:

for(i=2; i<N; i++)
  if(i%2) prime=false;
  else prime=true;
   for(i=3; i<=sqrt(N); i+=2)
   {   if(prime)
       for(j=i+i; j<N; j+=i)

            prime=false;
   }

在此基础上优化的算法是 只存奇数 不存偶数 因为偶数一定不是素数

 

筛法求素数

标签:sqrt   class   prime   code   算法   +=   style   基础   als   

原文地址:https://www.cnblogs.com/dyhaohaoxuexi/p/10699427.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!