fn d(n:i32)->i32{
    let mut res = 0;
    let mut logn = 1;
    while n / logn != 0{
        let a = n % (logn * 10);
        res += a / logn;
        logn *= 10;
    }
    return res + n;
}
use std::collections::HashSet;
fn main() {
 
    let n_of_d  = (1..10000).into_iter().map(d).collect::<HashSet<i32>>();
    let self_numbers = (1..10000).into_iter().filter(|it| !n_of_d.contains(it)).map(|self_number|format!("{}\n", self_number));

    let mut stdout = std::io::stdout();
    use std::io::Write;

    self_numbers.for_each(|it|{stdout.write(it.as_bytes());});
    stdout.flush();
}

백준 문제 풀이 분류가 없습니다