返回首页

epanjohura:尝试此代码示例:


    #include 

    using namespace std;

    void prime_num(int);

    int main()

    {

        cout << " Enter a number and I will generate the prime numbers up to that number: ";

        int num = 0;

        cin >> num;

        prime_num(num);

    }

     

    void prime_num( int num)

    {

        bool isPrime=true;

        for ( int i = 0; i <= num; i++)

        {

            for ( int j = 2; j <= num; j++)

            {

                if ( i!=j && i % j == 0 )

                {

                    isPrime=false;

                    break;

                }

            }

           if (isPrime)

           {

               cout <<"Prime:"<< i << endl;

           }

           isPrime=true;

        }

    }

回答

评论会员:曼弗雷德・R.Bihy 时间:2012/02/06
{A3的}

前两个环节会给你的代码示例
评论会员:Sangunni 时间:2012/02/06
这里是埃拉托色尼筛的实施,实际上是有一个更好的筛算法,简单易懂,但这个(相反)

bool *eratosthenes(int top)

{

    bool * sieve = new bool[top+1];

 

    // Initialize values



    sieve[0] = false; sieve[1] = false;

    for(int i=2;i<=top;i++)

        sieve[i] = true;

 

    /* it is sufficient to scan up to the sqrt, 

       because the inner loop would start at i*i. */

    for(int i=2;i <= sqrt(top); i++)

    {

        /*If i is not prime, the 2nd loop is redundant, because there was already p 

          that would have cancelled out both i and every other possible j. */

        if(!sieve[i])

            continue;

 

        /*we can start from i*i because i*2, ... i*(i-1) would already have 

          been assigned false in previous iterations by prime div of 2.,i-1. */

        for(int j=i*i;j<=top;j+=i)

            sieve[j] = false; // j isn't prime - i is a factor

    }

    return sieve;

}

评论会员:游客 时间:2012/02/06
ShacharK:C2的{|}|SwingSwis:我会推荐这一解决方案[包括使用Flash]{A4纸}{A5的}{A6的}]