Largest prime factor

 跟素數篩有相似處

另外:不要用while(cin>>n),會導致TLE(orz)

#include<iostream>
#include<cmath>
#define maxn 1000005
using namespace std;
int flag[maxn];
void prepare(){
	int k=1;
	for(int i=2;i<maxn;i++){
		if(flag[i]==0){
			for(int j=1;j*i<maxn;j++){
				flag[i*j]=k;
			}
			k++;
		}
	}
}
int main(){
	int n;
	prepare();
	while(scanf("%d",&n)!=EOF){
			cout<<flag[n]<<endl;
	}
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章