32 lines
609 B
Rust
32 lines
609 B
Rust
use std::io::{self, Write, BufWriter};
|
|
|
|
fn dn(n: usize) -> usize{
|
|
let mut m = n;
|
|
let mut sum = n;
|
|
|
|
while m > 0{
|
|
sum += m % 10;
|
|
m = m / 10;
|
|
}
|
|
|
|
return sum
|
|
}
|
|
|
|
fn main(){
|
|
const LENGTH : usize = 10_001;
|
|
let mut check : [bool; LENGTH + 1] = [true; LENGTH + 1];
|
|
let stdout = io::stdout();
|
|
let lock = stdout.lock();
|
|
let mut buff = BufWriter::new(lock);
|
|
|
|
for i in 1..LENGTH{
|
|
if check[i]{
|
|
buff.write_fmt(format_args!("{}\n", i));
|
|
}
|
|
let x = dn(i);
|
|
if x <= LENGTH{
|
|
check[dn(i)] = false;
|
|
}
|
|
}
|
|
}
|