Strange unique prime triplets: Difference between revisions
Content added Content deleted
(Added Rust solution) |
m (Bug fixes) |
||
Line 118: | Line 118: | ||
std::vector<bool> sieve(limit, true); |
std::vector<bool> sieve(limit, true); |
||
if (limit > 0) |
if (limit > 0) |
||
sieve[0] = false; |
|||
⚫ | |||
sieve[1] = false; |
sieve[1] = false; |
||
for (size_t i = |
for (size_t i = 4; i < limit; i += 2) |
||
sieve[i] = false; |
sieve[i] = false; |
||
for (size_t p = 3; ; p += 2) { |
for (size_t p = 3; ; p += 2) { |
||
Line 401: | Line 403: | ||
: prime_sieve ( n -- ) |
: prime_sieve ( n -- ) |
||
here over erase |
here over erase |
||
0 notprime! |
|||
1 notprime! |
1 notprime! |
||
dup |
dup 4 > if |
||
dup 4 do i notprime! 2 +loop |
|||
then |
|||
3 |
3 |
||
begin |
begin |
||
Line 1,361: | Line 1,366: | ||
let mut sieve = vec![true; limit]; |
let mut sieve = vec![true; limit]; |
||
if limit > 0 { |
if limit > 0 { |
||
sieve[0] = false; |
|||
} |
|||
if limit > 1 { |
|||
sieve[1] = false; |
sieve[1] = false; |
||
} |
} |
||
for i in ( |
for i in (4..limit).step_by(2) { |
||
sieve[i] = false; |
sieve[i] = false; |
||
} |
} |
||
Line 1,385: | Line 1,393: | ||
fn strange_unique_prime_triplets(limit: usize, verbose: bool) { |
fn strange_unique_prime_triplets(limit: usize, verbose: bool) { |
||
if limit < 6 { |
|||
⚫ | |||
return; |
return; |
||
} |
} |
||
let mut primes = Vec::new(); |
|||
let sieve = prime_sieve(limit * 3); |
let sieve = prime_sieve(limit * 3); |
||
for p in (3..limit).step_by(2) { |
for p in (3..limit).step_by(2) { |
||
Line 1,484: | Line 1,492: | ||
} |
} |
||
var sieve = Array(repeating: true, count: limit) |
var sieve = Array(repeating: true, count: limit) |
||
sieve[ |
sieve[0] = false |
||
if limit > 1 { |
|||
sieve[ |
sieve[1] = false |
||
} |
|||
if limit > 4 { |
|||
for i in stride(from: 4, to: limit, by: 2) { |
|||
sieve[i] = false |
|||
} |
|||
} |
} |
||
var p = 3 |
var p = 3 |
||
Line 1,507: | Line 1,520: | ||
func strangeUniquePrimeTriplets(limit: Int, verbose: Bool) { |
func strangeUniquePrimeTriplets(limit: Int, verbose: Bool) { |
||
guard limit > 5 else { |
|||
return; |
|||
} |
|||
let sieve = primeSieve(limit: 3 * limit) |
let sieve = primeSieve(limit: 3 * limit) |
||
var primes: [Int] = [] |
var primes: [Int] = [] |