library_checker/math/enumerate_primes.rs
1#[doc(no_inline)]
2pub use competitive::math::PrimeList;
3use competitive::prelude::*;
4
5#[verify::library_checker("enumerate_primes")]
6pub fn enumerate_primes(reader: impl Read, mut writer: impl Write) {
7 let s = read_all_unchecked(reader);
8 let mut scanner = Scanner::new(&s);
9 scan!(scanner, n: u64, a, b);
10 let primes = PrimeList::new(n);
11 let iter = primes.primes().iter().skip(b).step_by(a);
12 writeln!(writer, "{} {}", primes.primes().len(), iter.clone().len()).ok();
13 for p in iter {
14 write!(writer, "{} ", p).ok();
15 }
16 writeln!(writer).ok();
17}