You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
759 B

fn test_10(n: u32) -> bool {
let s = n.to_string();
let sv = s.chars().collect::<Vec<char>>();
let svr = s.chars().rev().collect::<Vec<char>>();
for i in 0..s.len() {
if sv[i] != svr[i] {
return false;
}
}
return true;
}
fn test_2(n: u32) -> bool {
let mut sv = Vec::new();
let mut a = n;
while a > 0 {
sv.push(a % 2);
a /= 2;
}
let mut svr = sv.clone();
svr.reverse();
for i in 0..sv.len() {
if sv[i] != svr[i] { return false; }
}
return true;
}
fn main() {
let mut sum = 0;
for n in 1..1_000_000 {
if test_10(n) && test_2(n) {
println!("{}", n);
sum += n;
}
}
println!("{}", sum);
}