70分求助
查看原帖
70分求助
580202
Siegerkranz_2735楼主2022/10/13 20:46

用的事埃筛的思路,最后三个点t了,求调(大嘘)

#include<bits/stdc++.h>
using namespace std;
const int N=1e7;
int n,x,i;
bool f[N+105];
bool check(int x){for(;x;x/=10)if(x%10==7)return 1;return 0;}
void is_7(){
	for(int i=1;i<=N+100;i++){
		if(f[i])continue;
		if(check(i))for(int j=1;i*j<=N+100;j++)f[j*i]=1;
	}
	return;
}
int main(){
	is_7();
	for(scanf("%d",&n);n--;){
		scanf("%d",&x);
		if(f[x]){printf("%d\n",-1);continue;}
		for(i=x+1;f[i];i++);
		printf("%d\n",i);
	}
	return 0;
}
2022/10/13 20:46
加载中...