筛选法求素数

用筛选的方法可以减少程序运行时间

筛除从2开始以后数的倍数。


求100以内素数:

#include 
#include 
main()
{
	int a[101]={0},i,j;
	for (i=2;i<=100;i++)  //将100以内的数,按顺序放在数组中 
	 a[i] = i;
	for (i=2;i<=sqrt(100);i++)
	{
		if (a[i]!=0)
		for (j=2*i;j<=100;j=j+i)//j是i的倍数,排除倍数,倍数不是素数 
		 {
		 	a[j]=0;
		 }
	}
	for (i=2;i<=100;i++)
	if (a[i]!=0)
	 printf("%d ",a[i]);
	 
}


你可能感兴趣的:(筛选法求素数)