代码
#include <bits/stdc++.h>
using namespace std;
const int MAX_X = (int)2.99 * 1e7;
int T, x, pre;
int book[MAX_X];
bool has7(int num) {
while (num > 0) {
if (num % 10 == 7) return true;
num /= 10;
}
return false;
}
int main() {
for (int i = 1; i <= MAX_X; i++) {
if (book[i] == -1) continue;
if (has7(i)) {
int n = i, j = 1;
while (n * j <= MAX_X) book[n * j] = -1, j++;
} else {
book[pre] = i;
pre = i;
}
}
scanf("%d", &T);
while (T--) {
scanf("%d", &x);
printf("%d\n", book[x]);
}
return 0;
}
倒数第二个点,read 0 expected 8
那应该输入的是6,但是我本地捏数据输入6会正常输出8啊?