```cpp
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define PII pair<int, int>
#define M(x, y) make_pair(x, y)
const int MAXN = 1e6 + 5;
bool v[MAXN];
int prime[MAXN], k, prime2[MAXN];
int l, r;
void takep(int n) {
k = 0;
for (int i = 2; i <= n; i++)
if (!v[i]) {
prime[++k] = i;
for (int j = i; j <= n / i; j++)
v[i * j] = true;
}
}
int main() {
#ifndef ONLINE_JUDGE
freopen("1.in", "r", stdin);
freopen("1.out", "w", stdout);
#endif
takep(47000);
while (scanf("%d %d", &l, &r) != EOF) {
if (l == 1) l++;
memset(v, false, sizeof(v));
for (int i = 1; i <= k; i++)
for (int j = l / prime[i]; j <= r / prime[i]; j++)
v[prime[i] * j - l] = true;
int n = 0;
for (int i = l; i <= r; i++)
if (!v[i - l]) prime2[++n] = i;
int ans1 = INT_MAX, ans2 = 0, xx, xy, yx, yy;
if (n < 2) {
puts("There are no adjacent primes.");
continue;
}
for (int i = 2; i <= n; i++) {
if (prime2[i] - prime2[i - 1] < ans1) {
ans1 = prime2[i] - prime2[i - 1];
xx = prime2[i - 1], xy = prime2[i];
}
if (prime2[i] - prime2[i - 1] > ans2) {
ans2 = prime2[i] - prime2[i - 1];
yx = prime2[i - 1], yy = prime2[i];
}
}
printf("%d,%d are closest, %d,%d are most distant.\n", xx, xy, yx, yy);
}
return 0;
}
```
by liuzimingc @ 2021-09-26 16:31:23
@[liuzimingc](/user/421781) 你这不也是RE?
by qwq___qaq @ 2021-10-13 23:45:52