RosettaCodeData/Task/Primality-by-trial-division/Rust/primality-by-trial-division.rust

18 lines
381 B
Text
Raw Permalink Normal View History

2015-02-20 00:35:01 -05:00
fn is_prime(n: u64) -> bool {
2019-09-12 10:33:56 -07:00
match n {
0 | 1 => false,
2 => true,
_even if n % 2 == 0 => false,
_ => {
let sqrt_limit = (n as f64).sqrt() as u64;
(3..=sqrt_limit).step_by(2).find(|i| n % i == 0).is_none()
}
}
2015-02-20 00:35:01 -05:00
}
fn main() {
2020-02-17 23:21:07 -08:00
for i in (1..30).filter(|i| is_prime(*i)) {
println!("{} ", i);
2015-02-20 00:35:01 -05:00
}
}