init
This commit is contained in:
7
problems/p125/Cargo.toml
Normal file
7
problems/p125/Cargo.toml
Normal file
@@ -0,0 +1,7 @@
|
||||
[package]
|
||||
name = "p125"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
rayon = "1.10.0"
|
||||
57
problems/p125/src/main.rs
Normal file
57
problems/p125/src/main.rs
Normal 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}");
|
||||
}
|
||||
Reference in New Issue
Block a user