第一种:打表


不老实的人会进行打表。
use std::io;

fn main() {
    let mut s = String::new();
    io::stdin().read_line(&mut s).unwrap();
    println!("{}",match s.trim().parse::<u32>().unwrap() {
        1..=4 => 2,
        5 => 3,
        6..=24 => 4,
        25..=75 => 5,
        76..=375 => 6,
        376..=624 => 7,
        625..=9375 => 8,
        _ => 9,
    });
}

第二种:求出自守数


老实的人会求出范围内的自守数。
use std::io;

fn main() {
    let mut s = String::new();
    io::stdin().read_line(&mut s).unwrap();
    let n = s.trim().parse::<u32>().unwrap();
    let mut counter = 0;
    for i in 0..=n {
        if (i.pow(2)).to_string().ends_with(&(i.to_string())) {
            counter += 1;
        }
    }
    println!("{}",counter);
}