70ptsTLE求助
查看原帖
70ptsTLE求助
515274
AC_Boy楼主2023/3/12 21:16
#include <bits/stdc++.h>
using namespace std;
const int N = 1e7;
long long T, kk, af;
bool f[N + 10];

bool judge(int k) {
	int r;
	while (k != 0) {
		r = k % 10;
		k /= 10;
		if (r == 7) {
			return true;
		}
	}
	return false;
}

void table() {
	for (int i = 1; i <= N; i++) {
		if (i == 7) {
			for (int j = 1; j * i <= N; j++) {
				f[i * j] = 1;
			}
		} else if (f[i] == 0) {
			if (judge(i)) {
				for (int j = 1; j * i <= N; j++) {
					f[i * j] = 1;
				}
			}
		}
	}
}

int main() {
	table();
	cin >> T;
	while (T--) {
		scanf("%lld", &kk);
		if (f[kk] == 1) {
			printf("-1\n");
		} else {
			af = kk + 1;
			while (f[af] == 1) {
				af++;
			}
			printf("%lld\n", af);
		}
	}
	return 0;
}
2023/3/12 21:16
加载中...