筛素数的水题。题意:给一个整数n,求n后一个素数和前一个素数的差值,如果n是素数时输出0。
我的解题思路:数据范围不太大,不过为了保险起见还是要离线处理。筛出范围内的素数表,然后就可以一次性算出所有数的答案,保存起来,这样查询速度会很快。
我的解题代码:
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
using namespace std;
const int N = 1299710;
int isprime[N]; //存储答案,素数则为0,非素数则为答案,0和1特殊
int primes[N], pn;
int n;
void InitRead();
void DataProcess();