首页 > 解决方案 > 显示所有小于某个数的素数

问题描述

我已经学习 C++ 几个星期了,但是,我卡住了,我有一个函数 isPrime(),可以很好地显示数字是否为素数,我需要显示所有小于 200 的素数。但它不起作用请参阅标有注释的行


#include <iostream>
using namespace std;

// Function Prototypes
bool isPrime(int);

int main()
{
    int Num;

        cout << "This program let you know if the number entered is a "
             << "prime number.\nEnter a number: ";
        cin  >> Num;

    cout << "The number " << Num;

    if (isPrime(Num))
    {
        cout << " is a Prime number." << endl;
    }
    else
        cout << " is not a Prime number." << endl;

    return 0;
}

//isPrime
bool isPrime(int Num)
{
    if (Num > 1)
    {
        for (int i = 2; i <= Num; ++i)
        {

            if (Num % i == 0)
            {
                if(Num == i)
                    return true;
                else if 
                           for(int n = 2; n < 200; n++) { // HERE
                  // isPrime will be true for prime numbers
                         isPrime = isPrimeNumber(n);

                            if(isPrime == true)
                                       cout<<n<<" ";
                           }
                              return 0;
                              else
                    return false;
            }

        }
    }
    return false;
}

标签: c++

解决方案


您在错误的位置添加了循环。该功能仅用于检查特定数字。您需要创建另一个函数来打印所有小于 200 的素数,或者您可以像我一样直接在 main() 函数中添加循环。

#include <iostream>
using namespace std;

// Function Prototypes
bool isPrime(int);

int main()
{
    int Num;

        cout << "This program let you know if the number entered is a "
             << "prime number.\nEnter a number: ";
        cin  >> Num;

    cout << "The number " << Num;


    // Check numbers here
    for(int n = 2; n < 200; n++) {

        if (isPrime(n)){
            cout << n << " is a Prime number." << endl;
        }
    }

    return 0;
}

//isPrime - This is your original isPrime Code
bool isPrime(int Num)
{
    if (Num > 1)
    {
        for (int i = 2; i <= Num; ++i)
        {

            if (Num % i == 0)
            {
                if(Num == i)
                    return true;
                else
                    return false;
            }

        }
    }
    return false;
}

推荐阅读