|
发表于 2023-10-15 18:28:30
|
显示全部楼层
运行结果
- $ time target/release/main
- 23
- 53
- 73
- 37
- 313
- 373
- 317
- 797
- 3137
- 3797
- 739397
- real 0m0.007s
- user 0m0.007s
- sys 0m0.000s
复制代码
题目结果
- sum=0;for i in `target/release/main`; do((sum+=i));done;echo $sum
- 748317
复制代码
使用 primal 库,Miller-Rabin方法检测质数
- use std::collections::HashSet;
- use primal::*;
- fn prime_r(x:u64) -> bool {
- if x == 0 { return true;}
- if ! is_prime(x) {return false;}
- prime_r(x / 10)
- }
- fn main() {
- let mut v = vec![2,3,5,7];
- let mut bit = 1;
- while ! v.is_empty() {
- let mut r = Vec::new();
- for i in v {
- for j in 1..10 {
- let x = i + j * 10u64.pow(bit);
- if is_prime(x) {
- r.push(x);
- }
- }
- }
- v = r;
- bit += 1;
- for i in &v {
- if *i > 1e10 as u64 {
- return ();
- }
- if prime_r(*i) {
- println!("{i}");
- }
- }
- }
- }
复制代码
|
|