求第n小的质数无法输出,已花很多时间去琢磨,但还是不知问题出在何处,希望能有人能解决我的疑惑(手动鞠躬)
#include
using namespace std;
int main()
{
int n,s=0,s1=0,i,j;
cin>>n;
for(i=2; ;++i)
{
for(j=1;j<=i;++j)
{
if(i%j==0)
{
s=s+1;
if(s==2)
{
s1=s1+1;
if(s1==n)
{
cout<<i;
break;
}
}
}
}
代码修改如下:
#include <iostream>
using namespace std;
int main()
{
int i,j,n;
int s = 0;
cin >> n;
for (i =2;;i++)
{
for(j=2;j<i;j++)
{
if(i%j == 0)
break;
}
if(j==i)
{
s++;
if(s == n)
{
cout << "第" << n << "小的质数是:" << i << endl;
break;
}
}
}
return 0;
}