' Special number = sum of the factorial of digits is equal to the number
Imports System
Public Class Program
Friend Shared Function factorial(ByVal num As Integer) As Integer
Dim fact As Integer = 1
While num <> 0
fact = fact * num
num -= 1
End While
Return fact
End Function
Friend Shared Function isSpecial(ByVal num As Integer) As Boolean
Dim sum As Integer = 0, tmp As Integer = num
While tmp <> 0
sum += factorial(tmp Mod 10)
tmp = tmp \ 10
End While
Return sum = num
End Function
Public Shared Sub Main(ByVal args As String())
Dim num As Integer = 145
If isSpecial(num) Then
Console.WriteLine("yes")
Else
Console.WriteLine("no")
End If
End Sub
End Class
' run:
'
' yes
'