2018-10-12 15:37:13 -04:00
---
2019-07-30 00:25:58 +05:30
title: 'Problem 4: Largest palindrome product'
2018-10-12 15:37:13 -04:00
---
2019-07-24 00:59:27 -07:00
# Problem 4: Largest palindrome product
2018-10-12 15:37:13 -04:00
2019-07-24 00:59:27 -07:00
---
## Problem Explanation
2018-10-12 15:37:13 -04:00
- A palindromic number is the one that when reversed reads the same.
- The largest number obtained from product of two 3 digit number is `999 * 999` , so we can make a loop that starts by producting the largest number and check if that number is palindromic or not.
2019-07-24 00:59:27 -07:00
---
## Solutions
< details > < summary > Solution 1 (Click to Show/Hide)< / summary >
2018-10-12 15:37:13 -04:00
```js
function largestPalindromeProduct(n) {
//To get the maximum n digit number, + operator type castes String to Number type
2019-07-24 00:59:27 -07:00
let max = +[...Array(n)].reduce((a, c) => (a += 9), "");
2018-10-12 15:37:13 -04:00
//Next we get minimum n digit number from the max
2019-07-24 00:59:27 -07:00
let min = (max + 1) / 10;
2018-10-12 15:37:13 -04:00
//To store the result
let res = [];
2019-07-24 00:59:27 -07:00
2018-10-12 15:37:13 -04:00
//Starting the loop from max to min
2019-07-24 00:59:27 -07:00
for (let i = max; i >= min; i--) {
//Another loop
for (let j = max; j >= min; j--) {
2018-10-12 15:37:13 -04:00
//Getting the product
2019-07-24 00:59:27 -07:00
let num = i * j;
2018-10-12 15:37:13 -04:00
//Reversing the number
2019-07-24 00:59:27 -07:00
let numReverse = [...String(num)].reverse().join("");
2018-10-12 15:37:13 -04:00
//Checking for palindromic number
if (num == numReverse) {
//Pushing the number into array and breaking the loop for efficiency
res.push(num);
break;
}
}
}
2019-07-24 00:59:27 -07:00
2018-10-12 15:37:13 -04:00
// Returning the maximum of the result array
return Math.max(...res);
}
```
2019-07-01 06:49:24 -07:00
2019-07-24 00:59:27 -07:00
#### Relevant Links
2018-10-12 15:37:13 -04:00
- [Wikipedia ](https://en.wikipedia.org/wiki/Palindromic_number )
2019-07-24 00:59:27 -07:00
< / details >