70pts,#8,9,10TLE求助
查看原帖
70pts,#8,9,10TLE求助
1041187
mutianhanhan楼主2023/10/24 13:42
#include <bits/stdc++.h>
using namespace std;
const int X = 1e7 + 10;
int t, x;
bool num[X];

bool check(int x) {
	if (num[x] == 1)
		return 1;

	while (x > 0) {
		if (x % 10 == 7)
			return 1;
		else
			x /= 10;
	}

	return 0;
}

int main() {
	int site = 7;
	num[site] = 1;

	for (int i = 1; i * site <= X; i++)

		if (num[i * site] == 0)
			num[i * site] = 1;

	while (site <= X) {
		if (!num[site] && check(site) )
			for (int i = 1; i * site <= X; i++)

				if (num[i * site] == 0)
					num[i * site] = 1;
		site++;
	}

	scanf("%d", &t);

	for (int i = 1; i <= t; i++) {

		scanf("%d", &x);

		if (check(x) == 1)
			printf("-1\n");
		else {
			int z = x + 1;

			while (num[z] == 1)
				z++;
			printf("%d\n", z);
		}
	}

	return 0;
}
2023/10/24 13:42
加载中...