考虑到H-素数的定义与素数类似,那么能否用一种类似于筛素数的方式筛出所有的H-素数呢?
假设i是H-素数,那么i*(4*n+1)一定是H数且不是H-素数。
那么就可以筛出所有的H-素数,进而求出所有的H-合成数。
#include#include using namespace std;const int N=1e6+7;int tot;int H[N],a[N];bool is[N],check[N];int qread(){ int x=0; char ch=getchar(); while(ch<'0' || ch>'9')ch=getchar(); while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();} return x;}int main(){ for(int i=5;i