Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;求第n个素数_C++_Numbers - Fatal编程技术网

C++ C++;求第n个素数

C++ C++;求第n个素数,c++,numbers,C++,Numbers,我在找第n个素数。 例如:输入1-结果2,输入2-结果3,输入3-结果5 我的iPrime功能目前可以正常工作,但我想不出来,一定是出了什么问题,请帮助,谢谢:) /* 求第n个素数 亚辛·奥斯曼 */ //包括图书馆 #包括 使用名称空间std; //定义全局计数器 int计数器=0; /* 定义功能 */ //isPrime函数(如果给定的数字是素数,则返回true) bool isPrime(int n){ bool-answer=true; for(int i=2;i

我在找第n个素数。 例如:输入1-结果2,输入2-结果3,输入3-结果5

我的iPrime功能目前可以正常工作,但我想不出来,一定是出了什么问题,请帮助,谢谢:)

/*
求第n个素数
亚辛·奥斯曼
*/
//包括图书馆
#包括
使用名称空间std;
//定义全局计数器
int计数器=0;
/*
定义功能
*/
//isPrime函数(如果给定的数字是素数,则返回true)
bool isPrime(int n){
bool-answer=true;
for(int i=2;i对于(int i=0;i改进
isPrime
功能:

  • 小于2的数字不是素数,所以先拒绝它们
感谢@MikeCAT

我把iPrime函数改成了小于2的数字

bool isPrime(int n) {
    bool answer = true;
    if(n<2){
        answer=false;
        return answer;
    }
    if(n>=2){
        for (int i = 2; i < n; i++) {
            if (n % i == 0) {
                answer = false;
                return answer;
        }
    }
    return answer;
    }
}
bool isPrime(int n){
bool-answer=true;
如果(n=2){
for(int i=2;i
我还做了一个函数

int nthPrime(int n){
    double i;
    for(i=2;counter<n;i++){
        if(isPrime(i)){
            counter++;
        }
    }
    return i-1;
}
int-nthPrime(int-n){
双i;

对于(i=2;counter此
isPrime
函数将错误地判断1或更少的数字为素数。在
isPrime
函数中,当您执行
answer=false
赋值时,为什么要继续循环?为什么不立即
返回false
呢?您应该在循环中增加
counter
两次吗在
main
函数中?可能重复的yes我应该这样做,我在answer=false;@Someprogrammerdude之后返回false
int main() {
    int userInput;
    cout<<"Please indicate which prime number do you want to see: ";
    cin>>userInput;

    for(int i=0, counter=0;counter<=userInput;i++){ // note: the global "counter" is shadowed here
        if(isPrime(i)){
            counter++;
            if(counter==userInput){
                cout<<counter<<"th prime number is : "<<i<<endl;
            }
        }
    }

    return 0;
}
bool isPrime(int n) {
    bool answer = true;
    if(n<2){
        answer=false;
        return answer;
    }
    if(n>=2){
        for (int i = 2; i < n; i++) {
            if (n % i == 0) {
                answer = false;
                return answer;
        }
    }
    return answer;
    }
}
int nthPrime(int n){
    double i;
    for(i=2;counter<n;i++){
        if(isPrime(i)){
            counter++;
        }
    }
    return i-1;
}
int userInput;
    cout<<"Please indicate which prime number do you want to see: ";
    cin>>userInput;

    cout<<counter<<"th prime number is : "<<nthPrime(userInput);
    return 0;