Sexy primes: Difference between revisions

Content added Content deleted
m (Minor edit to Rust code)
m (Minor edit to C++ code)
Line 310: Line 310:
#include <vector>
#include <vector>
#include <boost/circular_buffer.hpp>
#include <boost/circular_buffer.hpp>
#include "sieve_of_eratosthenes.h"
#include "../library/sieve_of_eratosthenes.h"


int main() {
int main() {
Line 333: Line 333:
circular_buffer<int> unsexy_primes(max_unsexy);
circular_buffer<int> unsexy_primes(max_unsexy);


for (int p = 2; p < max; ) {
for (int p = 2; p < max; ++p) {
if (!sieve.is_prime(p))
continue;
if (!sieve.is_prime(p + diff) && (p - diff < 2 || !sieve.is_prime(p - diff))) {
if (!sieve.is_prime(p + diff) && (p - diff < 2 || !sieve.is_prime(p - diff))) {
// if p + diff and p - diff aren't prime then p can't be sexy
// if p + diff and p - diff aren't prime then p can't be sexy
Line 351: Line 353:
}
}
}
}
// skip to next prime number
++p;
while (p < max && !sieve.is_prime(p))
++p;
}
}