求调WA on #11
  • 板块P1835 素数密度
  • 楼主kn_wlq
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/24 11:19
  • 上次更新2024/3/24 13:31:05
查看原帖
求调WA on #11
753554
kn_wlq楼主2024/3/24 11:19

都对着深基抄了还是错的

#include<bits/stdc++.h>
using namespace std;
#define maxn 1000010
int n,N,x,pri[10000];
typedef long long LL;
bool a[maxn];
long long tre(int n,int pri[]){
	for(int i=2;i*i<=n;i++)
		if(a[i]==0)
			for(int j=i<<1;j<=n;j+=i)
				a[j]=1;
	long long cnt=0;
	for(int i=2;i<=n;i++)
		if(!a[i]) pri[cnt++]=i;
	return cnt;
}
int main(){
	long long cnt=tre(50000,pri);
	LL L,R;
	scanf("%lld %lld",&L,&R);
	memset(a,0,sizeof(a));
	for(int i=0;i<cnt;i++)
		for(LL j=max(2ll,(L-1)/pri[i]+1)*pri[i];j<=R;j+=pri[i])
			a[j-L]=1;
	long long ans=0;
	for(LL i=L;i<=R;i++)
		if(a[i-L]==0) ans++;
	printf("%d",ans);
	return 0;
}
2024/3/24 11:19
加载中...