c++输入一个正整数n,求第n小的质数

2025-01-31 02:51:45
推荐回答(3个)
回答1:

我C++学的不怎样,可能还不如你
不过我讲讲我的思路:
首先,你应当有个算法,通过循环变量 i 来取得10000以内的所有质数;
每找到一个质数,另一个变量 j 计数加1,当 j =n 时 输出 i

回答2:

  • #include  

  • #include  

  • using namespace std;  

  • //  

  • void main()  

  • {  

  • //char str[100];  

  • //int n;  

  • //char temp = getchar();  

  • //while(temp)  

  • //{  

  • //    

  • //}  

  • long n;  

  • cin>>n;  

  • bool flag = false;  

  • int count = 0;  

  • int num;  

  • while(count < n)  

  • {  

  • for(int i = 2; i <= 10000; i++)  

  • {  

  • int j = 2;  

  • for(j = 2; j <= sqrt((double)i); j++)  

  • {  

  • if(i % j == 0)  

  • break;  

  • }  

  • if(j > sqrt((double)i))  

  • {  

  • count++;  

  • num = i;  

  • if(count == n)  

  • break;  

  • }  

  • }  

  • }  

  • cout<

  • //  

  • system("pause");  

  • }

回答3:

//直接上代码
#include  
#include  
using namespace std;

void main()
{  
    long n;
    cin >> n;
    bool flag = false;
    int count = 0;
    int num;
    while (count < n)
    {
        for (int i = 2; i <= 10000; i++)
        {
            int j = 2;
            for (j = 2; j <= sqrt((double)i); j++)
            {
                if (i % j == 0)
                    break;
            }
            if (j > sqrt((double)i))
            {
                count++;
                num = i;

                if (count == n)
                    break;
            }
        }
    }
    cout << num << endl;
  
    system("pause");
}