质数功能集合

Raileight

2019-03-12 16:12:21

Personal

```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; } ```