25 lines
513 B
Plaintext
25 lines
513 B
Plaintext
fn count_divisors(n: u64) -> usize {
|
|
if n < 2 {
|
|
return 1;
|
|
}
|
|
2 + (2..=(n / 2)).filter(|i| n % i == 0).count()
|
|
}
|
|
|
|
fn main() {
|
|
println!("The first 20 anti-primes are:");
|
|
(1..)
|
|
.scan(0, |max, n| {
|
|
let d = count_divisors(n);
|
|
Some(if d > *max {
|
|
*max = d;
|
|
Some(n)
|
|
} else {
|
|
None
|
|
})
|
|
})
|
|
.flatten()
|
|
.take(20)
|
|
.for_each(|n| print!("{} ", n));
|
|
println!();
|
|
}
|