70TLE求助
查看原帖
70TLE求助
930739
Chang__An__Li楼主2025/6/21 09:27
#include<bits/stdc++.h>
using namespace std;
int T;
int x;
bool ab[10002000];
bool check(int x){
	int k=x;
	while(k){
		if(k%10==7)return false;
		k/=10;
	}
	return true;
}
void init(){
	for(int i=1;i<=1e7+1000;i++){
		if(ab[i]&&check(i)==false){
			ab[i]=false;
			for(int j=2*i;j<=1e7;j+=i){
				ab[j]=false;
			}
		}
	}
}
signed main(){
	scanf("%d",&T);
	memset(ab,1,sizeof(ab));
	init();
	while(T--){
		scanf("%d",&x);
		//判断x是否合法 
		if(ab[x]==false){
			printf("-1\n");
			continue;
		}
		if(x==9999998){
			printf("10000001\n");
			continue;
		}
		int b=x+1;
		while(ab[b]==false)b++;
		printf("%d\n",b);
	}
	return 0;
}

就最后33个点TLETLE,麻烦大佬救一下。

2025/6/21 09:27
加载中...