89分 #8求助!
查看原帖
89分 #8求助!
323183
CLCK楼主2022/10/28 15:13

寄()

开了-O2后不会T了

但是WA了一个点一直调不好

不知道是哪个corner case没考虑到还是写挂了

求助!

感谢大佬

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int a, b, cnt;
bool vis[100000005];
int prime[100000005];
bool ckrev(int t) {
	int y = t;
	int num = 0;
	while (y != 0) {
		num = num * 10 + y % 10;
		y /= 10;
	}
	return num == t;
}
void sieve() {
	for (int i = 2; i < b; i++) {
		if (!vis[i]) {
			prime[cnt++] = i;
		}
		for (int j = 0; j < cnt; ++j) {
			if (1ll * i * prime[j] >= b) break;
			vis[i * prime[j]] = 1;
			if (i % prime[j] == 0) {
				break;
			}
		}
	}
}
int main() {
	cin >> a >> b;
	sieve();
	int *beg = lower_bound(prime, prime + cnt, a);
	int *ed = upper_bound(prime, prime + cnt, b);
	for (int *j = beg; j < ed; j++) {
		if (ckrev(*j)) cout << *j << endl;
	}
	return 0;
}

寄()

开了-O2后不会T了

但是WA了一个点一直调不好

不知道是哪个corner case没考虑到还是写挂了

求助!

感谢大佬

2022/10/28 15:13
加载中...