Add code
This commit is contained in:
22
src/main.rs
Normal file
22
src/main.rs
Normal file
@@ -0,0 +1,22 @@
|
||||
fn main() {
|
||||
for base in 2..=64 {
|
||||
println!("Basis {}: {:?}", base, solve(base));
|
||||
}
|
||||
}
|
||||
|
||||
fn solve(base: u128) -> Vec<u128> {
|
||||
let digits: Vec<u128> = (0..base).collect();
|
||||
let mut candidates = vec![(0, digits)];
|
||||
for _ in 0..base {
|
||||
candidates = candidates
|
||||
.into_iter()
|
||||
.flat_map(|(stumb, left)| left.clone().into_iter().map(move |digit| {
|
||||
let mut next_left: Vec<u128> = left.clone();
|
||||
next_left.retain(|d| *d != digit);
|
||||
(stumb * base + digit, next_left)
|
||||
}))
|
||||
.filter(|(number, left)| number % (base - (left.len() as u128)) == 0)
|
||||
.collect();
|
||||
}
|
||||
candidates.into_iter().map(|(number, _)| number).collect()
|
||||
}
|
||||
Reference in New Issue
Block a user