这个程序应该输入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;
}
但是,它没有用(除了第一和第二素数)。对于其余部分,光标只在输出页面上闪烁。有人可以指出错误吗?
答案 0 :(得分:0)
工作版本的变化很小:
#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 语句)