萌新求助
查看原帖
萌新求助
419117
wangxiang123楼主2021/4/11 20:39

只能过前四个点,5-10tle,11wa,求大佬帮助

#include<bits/stdc++.h>
using namespace std;
int prime[5200]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,
//表太长了就不放了,一共5150个质数
long long l,r,ans;
bool is[1000005];
int main()
{
	cin>>l>>r;
	memset(is,1,sizeof(is));
	for(int i=1;prime[i]<=sqrt(r);i++)
	{
		for(long long j=2*prime[i];j<=r;j+=prime[i])
		{
			if(j>=l&&j<=r)is[j-l]=0;
		}
	}
	for(int i=0;i<=r-l;i++)
	{
		ans+=is[i];
	}
	cout<<ans;
	return 0;
}
2021/4/11 20:39
加载中...