destus,
вариант с кешированием ... если вычислялось n = 10, а потом n = 3 , то результат для n = 3 не будет вычислятся, а вернётся из кеша.
<script>
var a = function() {
var c = {};
return function(f, b) {
!c[b] && (c[b] = {
i: 0,
0: [b, b]
});
for (var d = c[b].i, g = c[b][d][1], e = c[b][d][0]; d < f;) e = 1.3 * e + 300 * ++d, g += e, c[b][d] = [e, g], c[b].i = d;
return c[b][f]
}
}();
for (var i=0; i<10; i++) {document.write(i + " " +a(i,100).join(" ")+ "<br>")}
</script>