注册 登录
编程论坛 C++教室

小弟初来乍到,望各位大神多多帮助

映雪 发布于 2021-09-23 00:21, 3156 次点击
用C++编写一个求出200以内所有素数的源程序
2 回复
#2
rjsp2021-09-23 08:17
程序代码:
#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 << ' ';
}

#3
早班车2021-09-26 13:10
1