Pythagorean quadruples: Difference between revisions

Content added Content deleted
(Added Crystal translation of Ruby version.)
(rust)
Line 1,775: Line 1,775:
<pre>1 2 4 5 8 10 16 20 32 40 64 80 128 160 256 320 512 640 1024 1280 2048
<pre>1 2 4 5 8 10 16 20 32 40 64 80 128 160 256 320 512 640 1024 1280 2048
</pre>
</pre>

=={{header|Rust}}==

This is equivalent to https://oeis.org/A094958
which simply contains positive integers of the form 2^n or 5*2^n
We provide iterator-style and loop-style code:

<lang rust>
use std::collections::BinaryHeap;

fn a094958_iter() -> Vec<u16> {
(0..12)
.map(|n| vec![1 << n, 5 * (1 << n)])
.flatten()
.filter(|x| x < &2200)
.collect::<BinaryHeap<u16>>()
.into_sorted_vec()
}

fn a094958_loop() -> Vec<u16> {
let mut v = vec![];
for n in 0..12 {
v.push(1 << n);
if 5 * (1 << n) < 2200 {
v.push(5 * (1 << n));
}
}
v.sort();
return v;
}

fn main() {
println!("{:?}", a094958_iter());
println!("{:?}", a094958_loop());
}

#[cfg(test)]
mod tests {
use super::*;
static HAPPY: &str = "[1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 128, 160, 256, 320, 512, 640, 1024, 1280, 2048]";
#[test]
fn test_a094958_iter() {
assert!(format!("{:?}", a094958_iter()) == HAPPY);
}
fn test_a094958_loop() {
assert!(format!("{:?}", a094958_loop()) == HAPPY);
}
}
</lang>


=={{header|Scala}}==
=={{header|Scala}}==