这题应该没错啊
#include<bits/stdc++.h>
using namespace std;
int T;
const int maxn = 1e7 + 5;
bool vis[maxn];
int f[maxn];
bool num (int x){
while(x) {
int k = x % 10;
if (k == 7) {
return true;
}
x /= 10;
}
return false;
}
int main () {
// freopen ("number3.in", "r", stdin);
// freopen ("number3.out", "w", stdout);
for (int i = 1; i <= maxn; i++) {
if (!vis[i]){
if (num(i) || i % 7 == 0) {
for (int j = i; j <= maxn; j += i) {
vis[j] = 1;
// cout << j << " ";
}
}
}
}
cin >> T;
while (T--){
int x ;
cin >> x;
if (vis[x]) {
cout << -1 << '\n';
} else {
for (int i = x + 1; i <= maxn; i++ ) {
if (!vis[i]) {
cout << i << '\n';
break;
}
}
}
}
return 0;
}
https://www.luogu.com.cn/team/88672