求助为啥re
查看原帖
求助为啥re
538057
a2937564051楼主2021/11/21 09:35
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int a[8],book[maxn];
int i=0;
int ten(int s){
	i=0;
	while(s){
		a[i]=s%10;
		s/=10;
		i++;
	}
}
void check1(){
	for(int j=1;j<=1e5;j++){
		i=0;
		ten(j);
		for(int k=0;k<=7;k++){
			if(a[k]==7) book[j]=1;
		}
	}
}
void check2(){
	for(int j=1;j<=1e5;j++){
		if(book[j]==1){
			int n=1;
			while(n*j<=1e5){
				book[n*j]=1;
				n++;
			}
		}
	}
}
int main(){
	freopen("number.in","r",stdin);
	freopen("number.out","w",stdout);
	int t;
	check1();
	check2();
	scanf("%d",&t);
	while(t--){
		int x;
		scanf("%d",&x);
		if(book[x]==1) printf("-1\n");
		else {
			for(int i=1;;i++){
				if(book[x+i]==0){
					printf("%d\n",x+i);
					break;
				}
			}
		}
	}
	return 0;
}
2021/11/21 09:35
加载中...