蓝桥杯
2.质数
求质数的几种方法:
#include<iostream>
#include<algorithm>
using namespace std;
bool is_primer1(int n)
{
if (n < 2) return n;
//for (int i = 2; i < n; i++)
for (int i = 2; i <= n / i; i++)//对循环进行优化
{
if (n % i == 0) return false;
}
return true;
}
int primes[1000], cnt = 0;
bool st[1000];
void is_primer2(int n)
{
for (int i = 2; i <= n; i++)
{
if (!st[i])
{
primes[cnt++] = i;
cout << i << " ";
for (int j = i + i; j <= n; j += i)
{
st[j] = true;
}
}
}
}
int main()
{
int n = 1000;
//打印1000内的所有质数
//1.试除法
for (int i = 2; i <= n; i++)
{
if (is_primer1(i)) cout << i << " ";
}
cout << endl;
//2.埃氏筛法
is_primer2(n);
return 0;
}
使用上面两种的任意一种求质数的方式就可以求出第2019个 质数是什么。