素數篩模板
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;
}
}