分手 HRBUST - 1154(素數篩)

素數篩模板

AC代碼:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn=1e6+5;
int a[maxn];
void prime() {
	memset(a,1,sizeof(a));
	a[0]=a[1]=0;//1不是素數
	for(int i=2; i<=maxn; i++)if(a[i])
			for(int j=i+i; j<=maxn; j+=i)a[j]=0;
}
int main() {
	prime();
	int n;
	while(cin>>n) {
		int flag=0;
		int k=sqrt(n);
		for(int i=2; i<=k; i++) {
			if(a[i]&&n%i==0) {
				int m=n/i;
				if(a[m])flag=1;
			}
		}
		if(flag)cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
}

 

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