筛选求素数法

 余温
2018年01月17日 19时37分
 其他的

#include <iostream>
using namespace std;
#define MAX_NUM 1000000
char isPrime[MAX_NUM+10];
int main()
{
	//设置数组元素2到MAX_NUM的值 为1 
	for(int i=2;i<MAX_NUM;++i){
		isPrime[i]=1;
	}
	
	for(int i=2;i<MAX_NUM;++i){
		//循环处理数组中的数据 把每个数组下标的值的倍数的下标元素值设置为0   
		//如果元素的值为0则不处理 
		if(isPrime[i]){
			for(int j = 2*i;j<MAX_NUM;j +=i){
				isPrime[j] = 0;
			}
		}
	}
	
	for(int i=2;i<MAX_NUM;++i){
		//输出每个元素值不为零的下标  这些下标就是2到到MAX_NUM中的素数 
		if(isPrime[i]){
			cout << i << endl;
		}
	} 
	return 0;
}


{{vo.nickname}}:{{vo.content}}

{{vo.time}} 回复


  • {{level.nickname}} 回复 {{level.father_nickname}}{{level.content}}
  • {{level.time}} 回复


@
登陆后评论