// Perform the logic for solving the problem. function process ( n ) { var fileLines = fs.readFileSync ( 'data/euler0013.txt' ).toString ().split ( /\r?\n/ ); var number = new BigInteger (); // add all the numbers together for ( var i = 0; i < fileLines.length; ++i ) number = number.plus ( new BigInteger ( fileLines [i] ) ); // return the first 10 digits return number.toString ().slice ( 0, 10 ); }
bigNumberReadIntBE: function (buffer, offset, byteLength) { offset = offset >>> 0 byteLength = byteLength >>> 0 var i = byteLength var mul = new BigInt("1"); var val = new BigInt(buffer[offset + --i]); while (i > 0 && (mul = mul.times(0x100))) { var temp = new BigInt(buffer[offset + --i]); val = val.plus(temp.times(mul)); } mul = mul.times(0x80); if (val.greater(mul)) { var subtrahend = new BigInt(2); val = val.minus(subtrahend.pow(8 * byteLength)); } return val }