求助,90pts+测试点10 MLE
查看原帖
求助,90pts+测试点10 MLE
394167
Cure_Wing楼主2021/8/13 22:43

rt,https://www.luogu.com.cn/record/55526861

#include<bits/stdc++.h>
#define mk 22222222
using namespace std;
vector<int>p;
int x[mk+1];
bool flag[mk+1];
int n,l,r;
int ffk(int r){
	int ssk=0;
	for(int i=r;i;i/=10) ssk+=i%10;
	return ssk;
}
int main(){
	flag[1]=1;x[1]=0;
	for(int i=2;i<=mk;++i){
		if(!flag[i]) p.push_back(i);
//		cout<<i<<' '<<flag[i]<<'\n';
		x[i]=x[i-1]+!(flag[i]||flag[ffk(i)]);
		for(int j=0;j<p.size()&&i*p[j]<=mk;++j){
//			cout<<j<<'\n';
			flag[i*p[j]]=1;
			if(i%p[j]==0) break;
		}
	}
	scanf("%d",&n);
	while(n--){
		scanf("%d%d",&l,&r);
		printf("%d\n",x[r]-x[l-1]);
	}
	return 0;
}

真心求错!

2021/8/13 22:43
加载中...