This commit is contained in:
2021-04-16 10:14:44 +02:00
commit 0645ef2d2b
6 changed files with 77 additions and 0 deletions

22
src/main.rs Normal file
View 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()
}