打表法

打表法就是将所要求的一系列数按照题目所要求的顺序放入一个数组biao[i],当你想要拿出这一系列有规律数中的第i个时 你可以直接拿出biao[i],

例如用打表法求素数的集合

打表法判断素数 
在此之前,我们判断素数的方法多是用暴力枚举法,即若要判断一个数n是否是素数,就需要从i=2开始,一直到n/2为止,判断是否有数能整除n,若没有的话,则n为素数。 
思路:先确定要判断的数大概在哪个范围之内,以便于开一个合适
的数组prime[max],首先要将prime数组初始化为0,i从2开始,如果对应的prime[i]为0 的话,即从j=2*i开始,到最大的范围,将这些位置的prime的值都变为1,表示这些数都不是素数,这里注意j在加的时候加的不是1,而是i,这样一直下去,一张素数表就完成了,当需要判断某个数是否是素数的时候只要判断prime[i]的值是多少就可以了,如果是0,表示这个i是素数,如果是1,表示这个i不是素数。下面是该函数 的代码:

	for(i=1;i<=max;i++)
	{
		prime[i]=1;//给prime[数组初始化为1] 
	}
	for(i=2;i<=max;i++)
	{
		if(prime[i]==1)//如果数组中第i个数为素数,则进行以下操作 
		{
			for(j=2*i;j<=max;j+=i)//所有j均为i的倍数 
			{
				prime[j]=0;//这些数不是素数让其等0 
			}
		}
	}

  

posted @ 2015-05-14 12:54  非我非非我  阅读(800)  评论(1编辑  收藏  举报