I don't have much to say about this solution. I found this one pretty trivial to implement with Python. I'm posting my solution just to keep everything in sequence. :) Basically, the question is asking to find x, where
x = (1 + 2 + .. + 100)2 - (12 + 12 + ... + 1002)
def main():
N = 100
sum1, sum2 = 0, 0
for i in range(1, N + 1):
sum1 += i
sum2 += pow(i,2)
return pow(sum1,2) - sum2
if '__main__' == __name__:
print main()
Edit: the iterative solution was trivial, but the mathematical solution is much more efficient and clever:
Mathematical Solution (credit to Lov Loothra)
N = 100 s1 = N*(N + 1)/2 # sum of first N numbers s2 = N*(N + 1)*(2*N + 1)/6 # sum of first N squares print s1*s1 - s2
Here's a link to my 'purely mathematical' solution for this problem: http://pastebin.com/vrGTvL3Q :P
ReplyDeleteNice, I figured there would be a mathematically solution (and I also expected you would figure it out :)). I should brush up on my mathematics and formula derivation techniques.
ReplyDelete