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

57
problems/p125/src/main.rs Normal file
View File

@@ -0,0 +1,57 @@
use rayon::prelude::*;
fn is_palindromic_number(n: u64) -> bool {
let str_n = n.to_string();
let rev_str_n: String = str_n.chars().rev().collect();
if str_n == rev_str_n {
return true;
}
false
}
fn is_continue_square_sum(n: u64) -> bool {
for start in 1..=(n as f64).sqrt() as u64 {
let mut sum = 0;
let mut count = 0;
let mut k = start;
while sum < n {
sum += k * k;
count += 1;
k += 1;
if sum == n && count >= 2 {
// 至少2个连续数字
return true;
}
}
}
false
}
fn main() {
assert!(is_palindromic_number(595));
assert!(is_continue_square_sum(595));
// let mut sum = 0u64;
// for i in 2..100000000u64 {
// if !is_palindromic_number(i) {
// continue;
// }
// if !is_continue_square_sum(i) {
// continue;
// }
// sum += i;
// }
// let sum: u64 = (2..100000000u64)
// .filter(|&i| is_palindromic_number(i))
// .filter(|&i| is_continue_square_sum(i))
// .sum();
let sum: u64 = (2..100000000u64)
.into_par_iter()
.filter(|&i| is_palindromic_number(i))
.filter(|&i| is_continue_square_sum(i))
.sum();
println!("{sum}");
}