数论初步——Eratosthenes筛法

具体内容见紫书p312-p313

一、用Eratosthenes筛法构造1~n的素数表

思想:对于不超过n的每个非负整数p,删除2p,3p,4p…,当处理完所有的后,还没有被删除的就是素数。

代码:

memset(vis,0,sizeof(vis));		
for(int i = 2; i <= n; i++)
	for(int j = 2 * i; j <= n; j += i)
		vis[j] = 1;		//vis[j] = 1 表示 j 不是素数 

  

自我感悟:有些题数据量太大,如果枚举会超时,此时可以预处理打表,然后数据量范围就缩小为表里的数了!

posted @ 2017-09-10 10:39  GGBeng  阅读(173)  评论(0编辑  收藏  举报