求答 找第n小的质数程序无法输出

求第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;
}