1
0
This commit is contained in:
2026-02-04 11:15:03 +08:00
commit 8b20a5dd21
125 changed files with 4177 additions and 0 deletions

7
problems/p34/Cargo.toml Normal file
View File

@@ -0,0 +1,7 @@
[package]
name = "p34"
version = "0.1.0"
edition = "2024"
[dependencies]
rayon = "1.11.0"

30
problems/p34/src/main.rs Normal file
View File

@@ -0,0 +1,30 @@
use rayon::prelude::*;
fn is_fact_sum(num: u32) -> bool {
let factorials = [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880];
let mut digits = Vec::new();
let mut a = num % 10;
let mut b = num / 10;
digits.push(a);
while b != 0 {
a = b % 10;
b /= 10;
digits.push(a);
}
let fact_sum: u32 = digits.iter().map(|&x| factorials[x as usize]).sum();
fact_sum == num
}
#[test]
fn test_is_fact_sum() {
assert!(is_fact_sum(145));
assert!(!is_fact_sum(146));
}
fn main() {
// 小于7位
let sum: u32 = (3..9999999)
.into_par_iter()
.filter(|&x| is_fact_sum(x))
.sum();
println!("{sum}");
}