Prime triangle: Difference between revisions
Content added Content deleted
(Added Swift solution) |
m (Rust - minor edit) |
||
Line 944: | Line 944: | ||
} |
} |
||
fn prime_triangle_count(a: &mut [u32] |
fn prime_triangle_count(a: &mut [u32]) -> u32 { |
||
let mut count = 0; |
|||
if a.len() == 2 { |
if a.len() == 2 { |
||
if is_prime(a[0] + a[1]) { |
if is_prime(a[0] + a[1]) { |
||
count += 1; |
|||
} |
} |
||
} else { |
|||
for i in 1..a.len() - 1 { |
|||
⚫ | |||
if is_prime(a[0] + a[i]) { |
|||
a.swap(i, 1); |
|||
count += prime_triangle_count(&mut a[1..]); |
|||
a.swap(i, 1); |
|||
} |
|||
} |
} |
||
} |
} |
||
⚫ | |||
} |
} |
||
Line 983: | Line 985: | ||
for n in 2..21 { |
for n in 2..21 { |
||
let mut a: Vec<u32> = (1..=n).collect(); |
let mut a: Vec<u32> = (1..=n).collect(); |
||
if n > 2 { |
|||
print!(" "); |
|||
if n == 2 { |
|||
print!("{count}"); |
|||
} else { |
|||
print!(" {count}"); |
|||
} |
} |
||
print!("{}", prime_triangle_count(&mut a)); |
|||
} |
} |
||
println!(); |
println!(); |
||
Line 1,020: | Line 1,019: | ||
1 1 1 1 1 2 4 7 24 80 216 648 1304 3392 13808 59448 155464 480728 1588162 |
1 1 1 1 1 2 4 7 24 80 216 648 1304 3392 13808 59448 155464 480728 1588162 |
||
Elapsed time: |
Elapsed time: 711 milliseconds |
||
</pre> |
</pre> |
||