本机AC洛谷RE#3~#10求助
查看原帖
本机AC洛谷RE#3~#10求助
277757
hanyuchen2019楼主2022/4/5 13:20
#include<bits/stdc++.h>
#define ll long long
using namespace std;
bool p[100005];
ll pr[100005],pn;
bool prime[3000005];
void xxs(int n)//这边应该没问题,我用这份xxs过了板子
{
	p[1]=1;
	for(int i=2;i<=n;++i)
	{
		if(!p[i])
			pr[++pn]=i;
		for(int j=1;j<=n&&i*pr[j]<=n;++j)
		{
			p[i*pr[j]]=1;
			if(i%pr[j]==0)
				break;
		}
	}
}
int main()
{
	xxs(50000);
	ll l,r;
	cin>>l>>r;
	for(int i=2;i<=r;++i)
	{
		for(int j=1;j<=pn&&i*pr[j]<=r;++j)
		{
			while(i*pr[j]<l)++j;//防止负数
			if(i*pr[j]-l>=1000005)break;//加了这行以后本机过了,洛谷RE
			prime[i*pr[j]-l]=1;
			if(i%pr[j]==0)break;
		}
	}
	int ans=0;
	for(int i=0;i<=r-l;++i)
		ans+=!prime[i];
	if(l==1)ans--;
	cout<<ans;
	return 0;
}

qaq

2022/4/5 13:20
加载中...