// Strong numbers are the numbers that the sum of factorial of its digits
// is equal to the original number
// 145 is a strong number: 1 + 24 + 120 = 145
fn factorial(n: i32) -> i32 {
let mut fact = 1;
for i in 2..=n {
fact *= i;
}
fact
}
fn main() {
for n in 1..=1_000_000 {
let mut tmp = n;
let mut sum = 0;
while tmp != 0 {
let reminder = tmp % 10;
sum += factorial(reminder);
tmp /= 10;
}
if sum == n {
println!("{}", n);
}
}
}
/*
run:
1
2
145
40585
*/