pub fn sieve_of_eratosthenes(n: usize) -> Vec<usize>Expand description
Eratosfen g’alviri — n gacha bo’lgan barcha tub sonlar.
G’oya: 2 dan boshlab, har bir tub sonning karralilarini “o’chirib” chiqamiz.
O’chirish p*p dan boshlanadi, chunki undan kichiklari allaqachon o’chirilgan.
- Time: O(n log log n) — deyarli chiziqli!
- Space: O(n) bit.
§Misol
use rust_algorithms::numbers::sieve_of_eratosthenes;
assert_eq!(sieve_of_eratosthenes(30), vec![2, 3, 5, 7, 11, 13, 17, 19, 23, 29]);
assert_eq!(sieve_of_eratosthenes(1).len(), 0);