1.Prime
题目大意
给你两个数 l 和 k,你需要确定的是在区间 [l,l+2k)中是不是有超过 k 个质数。
解题思路
如果暴力枚举时间复杂度是O(n)的,1e8的数据会超时
除了2,所有偶数都不是质数。所以如果l !=2,那么[l, l+2k) 最多有k个质数。 如果 l=2 ,除了 {2, 3}, {2, 3, 4, 5} 以及 {2, 3, 4, 5, 6, 7}这三种可能,其他的[l, l + 2k) 最多只有k个质数。所以特判一下输入的l和k满不满足这三种情况就行了
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
const int N=1e8+10;
int l,k;
bool check(int l,int k){
if(l!=2) return false;
if(k==1||k==2||k==3) return true;
return false;
}
int main(){
scanf("%d%d",&l,&k)