30 lines
617 B
Plaintext
30 lines
617 B
Plaintext
// [dependencies]
|
|
// rug = "1.9"
|
|
|
|
fn print_super_d_numbers(d: u32, limit: u32) {
|
|
use rug::Assign;
|
|
use rug::Integer;
|
|
|
|
println!("First {} super-{} numbers:", limit, d);
|
|
let digits = d.to_string().repeat(d as usize);
|
|
let mut count = 0;
|
|
let mut n = 1;
|
|
let mut s = Integer::new();
|
|
while count < limit {
|
|
s.assign(Integer::u_pow_u(n, d));
|
|
s *= d;
|
|
if s.to_string().contains(&digits) {
|
|
print!("{} ", n);
|
|
count += 1;
|
|
}
|
|
n += 1;
|
|
}
|
|
println!();
|
|
}
|
|
|
|
fn main() {
|
|
for d in 2..=9 {
|
|
print_super_d_numbers(d, 10);
|
|
}
|
|
}
|