这个文章的代码作者可能没有测试过,会出现错误,注意!!!
我写的这个,有个实例超时,可能先存储素数Vector耗时较大
#include<cmath>
#include<vector>
#include<iostream>
using namespace std;
bool IsPrime(int n)
{
if (n == 1)
return false;
for (int i = 2; i < n; ++i)
{
if (n%i == 0)
return false;
}
return true;
}
int main()
{
int N,M;
cin >> M >> N;
int i = 2;
vector<int>prime;
while (prime.size() < N)
{
if(IsPrime(i))
prime.push_back(i);
i++;
}
int cnt = 0;
for(int k = M - 1;k < N;k++)
{
cout<<prime[k];
cnt++;
if(cnt < 10 && k != N - 1)
{
cout<<" ";
}
else if (cnt == 10)
{
cout << endl;
cnt = 0;
}
}
return 0;
}
这个作者没有用数组来存储,能完美过关
那个素数判断我觉得应该这么写好点
bool isPrime(int n)
{
for(int i = 2; i <= sqrt(float(n)); ++i)
{
if(n % i == 0)
{
return false;
}
}
return true;
}