var num = 3012210; var power = Math.log(num) / Math.log(3); var rangeStart = Math.pow(3, Math.floor(power)); var rangeEnd = Math.pow(3, Math.ceil(power)); var rangeMid = (rangeStart + rangeEnd)/2; var finalElf = 0; console.log(rangeStart, rangeMid, rangeEnd); if(num > rangeMid){ finalElf += (rangeMid - rangeStart); finalElf += (num - rangeMid) * 2; } else{ finalElf += (num - rangeStart); } console.log(finalElf);