Código (vb) [Seleccionar]
Function IsLychrelNumber(numero As Double, ByRef numeroFinal As Double, Optional maxVueltas As Long = 20) As Boolean
Dim i As Long
numeroFinal = numero
For i = 0 To maxVueltas
numeroFinal = numeroFinal + CDbl(StrReverse(CStr(numeroFinal)))
If (numeroFinal = CDbl(StrReverse(CStr(numeroFinal)))) Then Exit Function
Next
IsLychrelNumber = True
End Function
Entendí que numeroFinal era el último generado, así que comienzo con ese, sino lo quito y no lo uso

De cualquier manera, esto sigue siendo funcional para números "pequeños", sino hay que hacer la suma mediante strings.
Saludos