质数功能集合
Raileight
2019-03-12 16:12:21
```cpp
#include<iostream>
#include<cstdio>
#define num 1000000//ɸѡ´Ó 1 ~ num µÄÖÊÊý ; num ÊÇ´ýÅÐÊýµÄÉÏÏÞ
using namespace std;
bool is_sieve[num + 5];
bool is_prime_sieve(long long n)//½áºÏɸ·¨ÅÐÖÊÊý
{
if(is_sieve[n]) return 0;
return 1;
}
bool is_prime_tradition(long long n)//´«Í³·½·¨ÅÐÖÊÊý
{
for(int i = 2 ; i * i <= n ; ++i)
{
if(n % i == 0) return 0;
}
return 1;
}
void sieve()//ɸ·¨±¾Ìå
{
for(long long i = 2 ; i <= num ; ++i)
{
if(!is_sieve[i])
{
for(long long k = 2 ; k * i <= num ; ++k)
{
is_sieve[i * k] = true;
}
}
}
}
void print_to_file()//Êä³ö 1 ~ num µÄÖÊÊýµ½Îļþprime.txt
{
freopen("prime.txt","w",stdout);
int p = 1;
int m = 10;
//ÿÐÐm¸ö
for(int i = 2 ; i <= num ; ++i)
{
if(!is_sieve[i])
{
cout<<i<<" ";
if(p++ % m == 0) cout<<endl;
}
}
}
int main()
{
sieve();
//open:
//·Ç¶à×éÊý¾ÝÔò×¢Ê͵ôÕâ¾ä
//print_to_file();
//·ÇÊä³öµ½ÎļþÔò×¢Ê͵ôÕâ¾ä
long long N;
cin>>N;
if(N <= 1) cout<<"Error"<<endl;
else
{
if(is_prime_sieve(N)) cout<<"Yes"<<endl;
else cout<<"NO"<<endl;
}
//goto open;
//·Ç¶à×éÊý¾ÝÔò×¢Ê͵ôÕâ¾ä
return 0;
}
```