回复 9楼 wp231957
懂了,这个程序也是用的筛选法,不过他是通过每次筛一段达到节省空间的目的,同时不用开几千万的数组使得时间也降下来了首先预处理出sqrt(max)内所有的素数,由上面我提到的结论,只需要筛这些素数就可以了
然后第一次筛选1-NUMP内的数,第二次筛选NUMP+1-NUMP*2内的数,......一次类推
每次筛选的时候记录下上面的素数加到了哪里,比如筛选3的时候,NUMP=100,肯定会加到102,这时候由于102>100,所以中断,记录下102-100=2,这样下次筛选3的时候从2开始就好了
确实是个很厉害的想法