疑难解答代码

Troubleshooting code

本文关键字:代码 疑难解答      更新时间:2023-10-16

这个程序应该接受6的输入并返回第6个素数,依此类推。

#include<iostream>
#include<cmath>
using namespace std;
bool isPrime(int num)
{
int factor=2;
while(factor<=num/2)
{
    if(num%factor==0)
        return false;
    factor++;
}
return true;
}
int main()
{
int num=2, count=0, whichprime;
cin>>whichprime;
while(count<whichprime)
{
    if(isPrime(num)==true)
    {
        count++;
        num++;
    }
}
cout<<num-1;
}

但是,它不起作用(除了第一个和第二个素数(。对于其余部分,光标只是在输出页面上不断闪烁。有人可以指出错误吗?

工作版本,更改最少:

#include<iostream>
#include<cmath>
using namespace std;
bool isPrime(int num)
{
int factor=2;
while(factor<=num/2)
{
    if(num%factor==0)
        return false;
    factor++;
}
return true;
}
int main()
{
int num=2, count=0, whichprime;
cin>>whichprime;
while(count<whichprime)
{
    if(isPrime(num)==true)
    {
        count++;
    }
    num++;
}
cout<<num-1;
}

(移动 num++;移出 if 语句(