如何批量生成大质数

起因

教授在写哈希,经常要找一些大的但是不常用的质数,教授不想背,所以打了这个。线性筛虽然时间上效率比埃氏筛高,但是相应的,空间是要比埃氏筛大的。所以选了埃氏筛。freopen是必不可少的。

#include<bits/stdc++.h>
using namespace std;
bool a[1000000001];
long long d;
void aishi(long long x)
{
	a[1]=1;
	for(long long i=2;i<=x;i++)
	{
		if(a[i]==0)
		{
		    for(long long j=2;i*j<=x;j++)
		        a[i*j]=1;
		}
	}
}
int main()
{
	freopen("aishi.txt","w",stdout);
	scanf("%lld",&d);
	aishi(d);
	for(long long h=d;h>=1;h--)
	{
		if(a[h]==0)
		    printf("%lld\n",h);
	}
}

效果
image
需要跑很长时间才能跑出来,但是很好用。

posted @ 2024-04-24 11:28  一位很会的教授er~  阅读(45)  评论(2编辑  收藏  举报