1use std::process::exit;
2
3use rk_primes::{Sieve, UNDER_100000};
4
5fn print_n(items: impl IntoIterator<Item = u32>, n: usize) {
6 items
7 .into_iter()
8 .take(n)
9 .for_each(|item| println!("{item}"));
10}
11
12fn main() {
13 let count = std::env::args().nth(1).unwrap_or_else(|| {
14 eprintln!("error: expected count");
15 exit(2);
16 });
17 let Ok(count) = count.parse::<usize>() else {
18 eprintln!("error: {count}: expected natural number");
19 exit(2);
20 };
21 if count <= UNDER_100000.len() {
22 print_n(UNDER_100000, count);
23 } else {
24 print_n(Sieve::default().primes(), count);
25 }
26}