Possible Duplicates:
Is there a bignum library for JavaScript?
Strange syntax of Number methods in JavaScript
I just wrote some code to figure out a Project Euler question.
I kept getting...
Uncaught SyntaxError: Unexpected token ILLEGAL
I couldn't see the syntax error in my code...
The number I'm using is 1000 digits long. I ran in Chrome's console
Number.MAX_VALUE > 7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450
And got false
. Bummer.
Is there a interpreter that can run my code?
Here is the code if needed...
var num = 7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450.toString();
var max = 0,
length = num.length;
for (var i = 0; i < length; i++) {
var consecTotal = 1,
limit = i + 5;
for (var j = i; j < limit; j++) {
consecTotal *= parseInt(num.substr(j, 1), 10);
}
max = Math.max(max, consecTotal);
}
console.log(max);
The question is to find the largest number that is the product of 5 consecutive numbers. I won't type it word for word, as I think Project Euler frowns upon answers being posted online (I'm not even sure mine may work yet).
I turned to JavaScript because I wasn't sure how to set up an int
to handle the number in C.
To actually explain the Uncaught SyntaxError: Unexpected token ILLEGAL
.
The cause of this is actually that...
...20752963450.toString();
^-------- ...the dot after a number is treated as a decimal point
Therefore this doesn't make sense.
But if you add a space in front of the dot, then it will work because
now JavaScript uses it to access the toString() method.
12323 .toString() // this will work as you'd expect it to if you come from Ruby or the like
Still, if you add the space num
will be infinity. So you'll have to look at awoodland's answer for a BigNum implementation.