注意事项:
1、素数筛选时j的范围
2、注意i+1与i-1的选用,防止越界
3、1既不是素数也不是合数
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <ctime>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <vector>
using namespace std;
typedef long long ll;
//const int INF = 0x3f3f3f3f;
//const int MAXN = ;
const ll maxn = 1000000 + 5;
const ll sqrtu = 46346;
//int n, m;
// int v[maxn], prime[maxn], m;
// void primes(int n) {
// memset(v, 0, sizeof(v));
// m = 0;
// for (int i = 2; i <= n; i++) {
// if (v[i] == 0) {
// v[i] = i;
// prime[++m] = i;
// }
// for (int j = 1; j <= m; j++) {
// if (prime[j] > v[i] || prime[j] > n / i) break;
// v[i * prime[j]] = prime[j];
// }
// }
// }
// int is_prime[sqrtmaxn];
int is_prime[sqrtu], m;
vector<int> primes;
void prime() {
for (int i = 0; i < sqrtu; i++)