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; } } }