Multi-base primes: Difference between revisions

Content added Content deleted
m (C++ performance improvement)
m (Rust - minor edit)
Line 1,442: Line 1,442:


fn increment(digits: &mut [usize], base: usize) -> bool {
fn increment(digits: &mut [usize], base: usize) -> bool {
let mut i = digits.len();
let i = digits.iter_mut().rev();
while i > 0 && digits[i - 1] + 1 == base {
for d in i {
digits[i - 1] = 0;
if *d + 1 != base {
i -= 1;
*d += 1;
return true;
}
if i == 0 {
}
return false;
*d = 0;
}
}
false
digits[i - 1] += 1;
true
}
}


Line 1,569: Line 1,568:
441431 -> [5, 8, 9, 11, 12, 14, 16, 17, 19, 21, 22, 23, 26, 28, 30, 31, 32, 33]
441431 -> [5, 8, 9, 11, 12, 14, 16, 17, 19, 21, 22, 23, 26, 28, 30, 31, 32, 33]


elapsed time: 14783 milliseconds
elapsed time: 15139 milliseconds
</pre>
</pre>


Line 1,591: Line 1,590:
50161 -> [7, 8, 9, 13, 17, 18, 19, 20, 25, 28, 29, 30, 31, 33, 35, 36, 38, 39, 41, 42, 43, 44, 47, 48, 52, 55, 56, 59, 60, 62]
50161 -> [7, 8, 9, 13, 17, 18, 19, 20, 25, 28, 29, 30, 31, 33, 35, 36, 38, 39, 41, 42, 43, 44, 47, 48, 52, 55, 56, 59, 60, 62]


elapsed time: 9570 milliseconds
elapsed time: 9569 milliseconds
</pre>
</pre>