如题,代码如下。
// I love CCF!
#include <bits/stdc++.h>
#define MAXN 10000000
using namespace std;
bool b[MAXN + 10];
bool check(int x)
{
while (x)
{
if (x % 10 == 7) return 1;
x /= 10;
}
return 0;
}
int main()
{
int T = 0; scanf("%d", &T);
int ask[T] = {};
for (int i = 0; i < T; i++)
{
scanf("%d", &ask[i]);
}
memset(b, 1, sizeof(b));
for (int i = 1; i <= MAXN; i++)
{
if (!b[i]) continue;
if (check(i) || i % 7 == 0)
for (int j = i; j <= MAXN; j += i) b[j] = false;
}
for (int i = 0; i < T; i++)
{
if (!b[ask[i]]) printf("-1\n");
else
for (int j = ask[i] + 1; j <= MAXN; j++)
if (b[j]) {printf("%d\n", j); break;}
}
return 0;
}