我正在尝试用C ++编写一个素数#程序

时间:2013-06-27 04:30:46

标签: c++

我需要创建一个程序,将用户号码传递给bool函数,如果该号码是素数,则返回bool响应然后如果数字是素数则显示程序。 这就是我所拥有的,我完全陷入了困境。

#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;

//Declare return function
bool isPrime(int);


//Declare constant
const int PRIME=2;

int main()
{
    //Declare local variable to store user number
    int user_num;
    //Declare local variable to store result
    bool result;
    //Declare variable to hold return
    bool status;

    //Request number from user
    cout << "Please enter a number" << endl;
    cin >> user_num;

    //Call function isPrime
    bool isPrime(int user_num);

    if (status==true)
        cout << user_num << "is prime" << endl;
    else
        cout << user_num << "is not prime" << endl;

    system ("PAUSE");
    return 0;

} //end main

//Define bool function
bool isPrime(int number)
{
    bool status;

    double num_1=sqrt(number);

    for (int i=2;i<=num_1;++i)
        if(!(number%i))
            status=false;
        else
            status=true;
    return status;

}//End bool function      

2 个答案:

答案 0 :(得分:1)

更改

bool isPrime(int user_num);

阅读

status = isPrime(user_num);

你在那里做的是声明功能而不是调用它。

您需要将功能移到主功能上方,或实际添加

bool isPrime(int user_num); 

在主函数上方或在调用函数之前。

答案 1 :(得分:0)

您还需要考虑isPrime中的循环。如果找到除数,则立即返回false。此时,您将多次覆盖结果变量并仅返回最终测试。

相关问题