JSFiddle - React, Tailwind, and code Playground
HTML
<table id="calc">
<tr><th>n</th>
<th>n<sup>2</sup></th>
<th>n<sup>5</sup> + 9000</th>
<th>2<sup>n</sup></th>
</tr>
</table>
CSS
table {border-collapse:collapse;}
td {border:solid #000 1px; padding:2px;}
JavaScript
var n=1;
var table = document.getElementById("calc");
for (var n=1; n<40; n++)
{
var tr=document.createElement("tr");
var td=document.createElement("td");
td.appendChild(document.createTextNode(n));
tr.appendChild(td);
var td=document.createElement("td");
td.appendChild(document.createTextNode(formatNumber(Math.pow(n,2),0,',')));
tr.appendChild(td);
var td=document.createElement("td");
td.appendChild(document.createTextNode(formatNumber(Math.pow(n,5)+9000,0,',')));
tr.appendChild(td);
var td=document.createElement("td");
td.appendChild(document.createTextNode(formatNumber(Math.pow(2,n),0,',')));
tr.appendChild(td);
table.appendChild(tr);
}
function formatNumber(n, p, ts, dp) {
var t = [];
// Get arguments, set defaults
if (typeof p == 'undefined') p = 2;
if (typeof ts == 'undefined') ts = ',';
if (typeof dp == 'undefined') dp = '.';
// Get number and decimal part of n
n = Number(n).toFixed(p).split('.');
// Add thousands separator and decimal point (if requied):
for (var iLen = n[0].length, i = iLen? iLen % 3 || 3 : 0, j = 0; i <= iLen; i+=3) {
t.push(n[0].substring(j, i));
j = i;
}
// Insert separators and return result
return t.join(ts) + (n[1]? dp + n[1] : '');
}