python:
reward_interval = 210000
current_reward = 50 * 10**8
total = 0
count = 0
while current_reward > 0:
total += reward_interval * current_reward
current_reward /= 2
count += 1
print "count is :", count, "; current_reward is :", current_reward
print "Total BTC to ever be created:", total, "Satoshis"
result:
count is : 1 ; current_reward is : 2500000000
count is : 2 ; current_reward is : 1250000000
count is : 3 ; current_reward is : 625000000
count is : 4 ; current_reward is : 312500000
count is : 5 ; current_reward is : 156250000
count is : 6 ; current_reward is : 78125000
count is : 7 ; current_reward is : 39062500
count is : 8 ; current_reward is : 19531250
count is : 9 ; current_reward is : 9765625
count is : 10 ; current_reward is : 4882812
count is : 11 ; current_reward is : 2441406
count is : 12 ; current_reward is : 1220703
count is : 13 ; current_reward is : 610351
count is : 14 ; current_reward is : 305175
count is : 15 ; current_reward is : 152587
count is : 16 ; current_reward is : 76293
count is : 17 ; current_reward is : 38146
count is : 18 ; current_reward is : 19073
count is : 19 ; current_reward is : 9536
count is : 20 ; current_reward is : 4768
count is : 21 ; current_reward is : 2384
count is : 22 ; current_reward is : 1192
count is : 23 ; current_reward is : 596
count is : 24 ; current_reward is : 298
count is : 25 ; current_reward is : 149
count is : 26 ; current_reward is : 74
count is : 27 ; current_reward is : 37
count is : 28 ; current_reward is : 18
count is : 29 ; current_reward is : 9
count is : 30 ; current_reward is : 4
count is : 31 ; current_reward is : 2
count is : 32 ; current_reward is : 1
count is : 33 ; current_reward is : 0
Total BTC to ever be created: 2099999997690000 Satoshis