1个不稳定版本
0.1.0 | 2022年10月20日 |
---|
1791 在 数学
8KB
87 行
prime-iter
一个基于增量筛的素数生成器,进行了某些优化。
示例
接口以迭代器的形式给出,因此使用非常简单且符合惯例
let fifty_second_prime = prime_iter::primes::<i32>().nth(51).unwrap();
assert_eq!(fifty_second_prime, 239);
let prime_sum: i32 = prime_iter::primes::<i32>().take(100).sum();
assert_eq!(prime_sum, 24133);
let two_digit_primes: Vec<i32> = prime_iter::primes::<i32>().skip_while(|&x| x < 10).take_while(|&x| x < 100).collect();
assert_eq!(two_digit_primes, [11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]);
当然,for
循环也适用
for prime in prime_iter::primes::<i32>() {
if prime % 10 == 1 {
println!("{prime}");
}
}
no_std
支持
prime-iter
支持无std环境,但它确实使用了分配。对于无std环境,禁用默认启用的 std
功能。
安装
可以将此行添加到您的 Cargo.toml
prime-iter = "0.1"
或者简单地运行 cargo add prime-iter
。
许可证
根据您的选择,许可如下
- Apache许可证第2版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
。