Module Module1
' 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
Sub Main()
Dim reminder As Integer
Dim sum As Integer, tmp As Integer
For n As Integer = 1 To 1000000
tmp = n
sum = 0
While tmp <> 0
reminder = tmp Mod 10
sum += factorial(reminder)
tmp \= 10
End While
If (sum = n) Then
Console.WriteLine("{0}", n)
End If
Next
End Sub
Function factorial(n As Integer) As Long
Dim fact As Long = 1
For i As Integer = 2 To n
fact = fact * i
Next
Return fact
End Function
End Module
' run:
'
' 1
' 2
' 145
' 40585