'Author: Demon
'Website: http://demon.tw
'Email:
[email protected] Option Explicit
Function multiple(byVal x, byVal y)
Dim n, t, i, j, z, w()
n = Len(x) - 1
t = Len(y) - 1
ReDim w(n + t + 1)
x = CStr(x) : y = CStr(y)
For i = 0 To UBound(w)
w(i) = "0"
Next
For i = 0 To t
Dim c : c = 0
Dim uv : uv = 0
For j = 0 To n
uv = (w(i+j)-"0") + c + _
(Mid(x,n-j+1,1)-"0") * (Mid(y,t-i+1,1)-"0")
w(i+j) = CStr(uv Mod 10 + "0")
c = uv / 10
Next
w(i+n+1) = CStr(uv / 10 + "0")
Next
z = Join(w,"")
z = StrReverse(z)
Do While Left(z,1) = "0"
z = Mid(z,2)
Loop
multiple = z
End Function
Function factorial(n)
Dim i, t : t = 1
For i = 1 To n
t = multiple(t, i)
Next
factorial = t
End Function
Dim t : t = Timer
WScript.Echo factorial(100)
WScript.Echo Timer - t