Math
class Solution {
public:
vector<int> closestPrimes(int left, int right) {
vector<int> flags(right+1, 1);
flags[0] = 0;
flags[1] = 0;
for (int i = 2; i * i <= right; i++) {
for (int j = i * i; j <= right; j = j + i) {
flags[j] = 0;
}
}
vector<int> result = {-1, -1};
int min = INT_MAX;
int l = -1;
int r = -1;
for (int i = left; i <= right; i++) {
if (flags[i] == 1) {
printf("i: %d\n", i);
if (l == -1 && r == -1) {
l = i;
r = i;
} else {
l = r;
r = i;
if (r - l < min) {
min = r - l;
result[0] = l;
result[1] = r;
}
}
}
}
return result;
}
};Brute Force
Euclidean Division
Phase Reduction Technique
Combination of Phase Reduction Technique and Transposition
Last updated
Was this helpful?