The series, 11 + 22 + 33 + ... + 1010 = 10405071317.
Find the last ten digits of the series, 11 + 22 + 33 + ... + 10001000.
The key here is to recognize that we do not need to keep track of any digits beyond the 10 rightmost digits. So, I made a copy of the LargeMultiply function from the Large Number Arithmetic module and added one line of code that terminated the computations as soon as the PowersOf10 multiplier exceeded 10. And, of course, I added a routine to use this new function.
Sub Euler48() Dim Rslt As String, I As Integer, ProcTime As Single ProcTime = Timer Rslt = "0" For I = 1000 To 1 Step -1 Rslt = Right(LargeAdd(Rslt, LargePower(I, I)), 10) 'If I Mod 100 = 0 Then Stop Next I Debug.Print Rslt, Timer - ProcTime End Sub