## J, <strike>50</strike> <strike>40</strike> 38 characters ## f=:3 :'+/-.y<}.~.,(~:/**/)~p:i._1&p:y' Usage: f 1 0 f 62 18 f 420 124 f 10000 2600 With thanks to [FUZxxl](http://codegolf.stackexchange.com/users/134/fuzxxl). **Performance test** showtotal_jpm_ ''[f 1[start_jpm_ '' Time (seconds) ┌───────┬──────┬────────┬────────┬─────┬────┬───┐ │name │locale│all │here │here%│cum%│rep│ ├───────┼──────┼────────┼────────┼─────┼────┼───┤ │f │base │0.000046│0.000046│100.0│100 │1 │ │[total]│ │ │0.000046│100.0│100 │ │ └───────┴──────┴────────┴────────┴─────┴────┴───┘ showtotal_jpm_ ''[f 1[f 62[start_jpm_ '' Time (seconds) ┌───────┬──────┬────────┬────────┬─────┬────┬───┐ │name │locale│all │here │here%│cum%│rep│ ├───────┼──────┼────────┼────────┼─────┼────┼───┤ │f │base │0.000095│0.000095│100.0│100 │2 │ │[total]│ │ │0.000095│100.0│100 │ │ └───────┴──────┴────────┴────────┴─────┴────┴───┘ showtotal_jpm_ ''[f 1[f 62[f 420[start_jpm_ '' Time (seconds) ┌───────┬──────┬────────┬────────┬─────┬────┬───┐ │name │locale│all │here │here%│cum%│rep│ ├───────┼──────┼────────┼────────┼─────┼────┼───┤ │f │base │0.000383│0.000383│100.0│100 │3 │ │[total]│ │ │0.000383│100.0│100 │ │ └───────┴──────┴────────┴────────┴─────┴────┴───┘ showtotal_jpm_ ''[f 1[f 62[f 420[f 10000[start_jpm_ '' Time (seconds) ┌───────┬──────┬────────┬────────┬─────┬────┬───┐ │name │locale│all │here │here%│cum%│rep│ ├───────┼──────┼────────┼────────┼─────┼────┼───┤ │f │base │0.084847│0.084847│100.0│100 │4 │ │[total]│ │ │0.084847│100.0│100 │ │ └───────┴──────┴────────┴────────┴─────┴────┴───┘ showtotal_jpm_ ''[f 1[f 62[f 420[f 10000[f 50000[start_jpm_ '' Time (seconds) ┌───────┬──────┬────────┬────────┬─────┬────┬───┐ │name │locale│all │here │here%│cum%│rep│ ├───────┼──────┼────────┼────────┼─────┼────┼───┤ │f │base │5.014691│5.014691│100.0│100 │5 │ │[total]│ │ │5.014691│100.0│100 │ │ └───────┴──────┴────────┴────────┴─────┴────┴───┘