2021 春季 乙级
最大公差的素数等差数列
我设了两个数组,一个只存0和1,判断它是不是素数;一个依次列出所有不超过上确界的素数
这个地方鸭,如果公差gap从1开始枚举是会超时的,从首项开始依次和后面的素数做差,这样得到gap,才不会超时啊
#include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
class node
{
public:
int gap,a;
node(int g,int a):gap(g),a(a){
}
};
bool cmp(node& n1,node& n2)
{
if(n1.gap==n2.gap) return n1.a>n2.a;
return n1.gap>n2.gap;
}
bool is_prime(int x)
{
if(x<2) return false;
for(int i=2;i<=sqrt(x);i++)
{
if(x%i==0) return false