小弟初来乍到,望各位大神多多帮助
用C++编写一个求出200以内所有素数的源程序
程序代码:
#include <iostream> using namespace std; bool is_prime( unsigned n ) { if( n == 2 ) return true; if( n<2 || n%2==0 ) return false; for( unsigned i=3; i*i<=n; i+=2 ) if( n%i == 0 ) return false; return true; } int main( void ) { for( unsigned i=0; i!=200; ++i ) if( is_prime(i) ) cout << i << ' '; }
程序代码:
#include <iostream> #include <vector> using namespace std; std::vector<bool> sieve_of_Eratosthenes( size_t n ) { std::vector<bool> r( n, true ); if( n>0 ) r[0] = false; if( n>1 ) r[1] = false; for( size_t i=2; i<n; ++i ) if( r[i] ) for( size_t j=i*i; j<n; j+=i ) r[j] = false; return r; } int main( void ) { std::vector<bool> r = sieve_of_Eratosthenes( 200 ); for( size_t i=0; i!=200; ++i ) if( r[i] ) cout << i << ' '; }