怎么简化循环#5~#10TLE
查看原帖
怎么简化循环#5~#10TLE
1087404
Florr_m27楼主2023/12/25 21:37
#include<bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	long long a, b[200010];
	cin >> a;
	for (int i = 1; i <= a; i++) {
		cin >> b[i];
	}
	bool x = false;
	for (int i = 1; i <= a; i++) {

		for (int j = 1; j <= b[i] / 2; j++) {
			if (j % 7 != 0 && j % 10 != 7 && j % 100 / 10 != 7 && j % 1000 / 100 != 7 && j % 10000 / 1000 != 7 && j % 100000 / 10000 != 7 && j % 1000000 / 100000 != 7) {
				continue;
			}
			if (b[i] % j == 0) {
				x = true;
			}
		}
		if (b[i] % 7 == 0 || b[i] % 10 == 7 || b[i] % 100 / 10 == 7 || b[i] % 1000 / 100 == 7 || b[i] % 10000 / 1000 == 7 || b[i] % 100000 / 10000 == 7 || b[i] % 1000000 / 100000 == 7) {
			x=true;
		}
		if (x == true) {
			cout << "-1" << endl;
			x = false;
			continue;
		}
		x = false;
		for (int j = b[i] + 1;; j++) {
			if (j % 7 == 0 || j % 10 == 7 || j % 100 / 10 == 7 || j % 1000 / 100 == 7 || j % 10000 / 1000 == 7 || j % 100000 / 10000 == 7 || j % 1000000 / 100000 == 7) {
				continue;
			}
			for (int k = 1; k <= j/2; k++) {
				if (k % 7 != 0 && k % 10 != 7 && k % 100 / 10 != 7 && k % 1000 / 100 != 7 && k % 10000 / 1000 != 7 && k % 100000 / 10000 != 7 && k % 1000000 / 100000 != 7) {
					continue;
				}
				if (j % k == 0) {
					x = true;
				}
			}
			
			if (x == false) {
				cout << j << endl;
				break;
			}
			x = false;
		}
	}
}
2023/12/25 21:37
加载中...