筛法求质——poj2262&2909

时间:2023-06-03 10:14:02

这两道题都是哥赫巴德猜想的内容。基本的技术点都是在一个很大的数字范围里面求质数。直接判断两个数是不是质数,这种方法虽然可行但是还是很慢的。所以这两题我们使用打表! 而建立质数表的方法就是筛法求质,速度很快(O(nlogn)),思想很简单,就是在把这个范围的数全部列出来,然后从2开始依次把2的倍数删掉,然后前进一个数,此时是3,然后把3的倍数再全部删去,就这样依次前进。知道把这个数表处理完毕,就得到了这个数表范围内的质数。

代码如下:

bool table[]={};

table[]=table[]=;
for(i=;i<;i++)
if(!table[i])
for(j=i*;j<;j+=i)
table[j]=;