JSFiddle - React, Tailwind, and code Playground
by craigm
JavaScript
// euler #4
var isPalindromic = function (num) {
var s = String(num),
halfIndex, first, last;
if (s.length % 2 !== 0) {
halfIndex = (s.length - 1) / 2;
first = s.substring(0, halfIndex);
last = s.substring(halfIndex + 1, s.length);
} else {
halfIndex = s.length / 2;
first = s.substring(0, halfIndex);
last = s.substring(halfIndex, s.length);
}
last = last.split('').reverse().join('');
return first === last;
};
var numbers = [],
palindromes = [],
product;
// fill the array with numbers from 100-999
for (var i = 100; i < 1000; i++) {
numbers.push(i);
}
// find all palindromes and store in an array
for (var i = 899; i >= 0; i--) {
for (var j = i-1; j >= 0; j--) {
product = numbers[i] * numbers[j];
if (isPalindromic(product)) palindromes.push(product);
}
}
// sort palindromes low to high
palindromes.sort(function (a, b) {
if (a < b) return -1;
if (a > b) return 1;
return 0;
});
// return the answer
console.log(palindromes[palindromes.length-1]);