萌新刚学欧拉筛,最后一个点MLE求助
查看原帖
萌新刚学欧拉筛,最后一个点MLE求助
444195
caramel_qwq楼主2022/3/15 20:15

求助

#include<iostream>
#include<cstdio>
using namespace std;
const int MAXN=1e8+5;
int n,l,r,cnt=0;
int ans[MAXN],an=1;
bool a[MAXN];
int main(){
	a[0]=1,a[1]=1;
	for(int i=2;i<=1e8;i++){
		if(!a[i]){
			ans[an++]=i;
		}
		for(int j=1;j<=an&&i*ans[j]<=1e8;j++){
			a[i*ans[j]]=1;
			if(!(i%ans[j])) break;
		} 
	}
	cin>>n;
	while(n--){
		cnt=0;
		cin>>l>>r;
		for(int i=l;i<=r;i++){
			if(a[i]==0){
				int t=i,x=0;
				while(t>0){
					x+=(t%10);
					t/=10;
				}
				if(a[x]==0){
					cnt++;
				} 
			}
		}
		cout<<cnt<<"\n";
	}
	return 0;
} 
2022/3/15 20:15
加载中...