52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Largest palindrome product
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## Problem 4: Largest palindrome product
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Method:
							 | 
						||
| 
								 | 
							
								- 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.
							 | 
						||
| 
								 | 
							
								### Solution:
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								function largestPalindromeProduct(n) {
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  //To get the maximum n digit number, + operator type castes String to Number type
							 | 
						||
| 
								 | 
							
								  let max = +[...Array(n)].reduce((a, c) => a+=9, "");
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  //Next we get minimum n digit number from the max
							 | 
						||
| 
								 | 
							
								  let min = (max+1)/10;
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  //To store the result
							 | 
						||
| 
								 | 
							
								  let res = [];
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  //Starting the loop from max to min
							 | 
						||
| 
								 | 
							
								  for (let i = max; i >= min; i--){
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    //Another loop 
							 | 
						||
| 
								 | 
							
								    for (let j =  max; j >= min; j--){
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      //Getting the product
							 | 
						||
| 
								 | 
							
								      let num = i*j; 
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      //Reversing the number
							 | 
						||
| 
								 | 
							
								      let numReverse = [...String(num)].reverse().join('');
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      //Checking for palindromic number
							 | 
						||
| 
								 | 
							
								      if (num == numReverse) {
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        //Pushing the number into array and breaking the loop for efficiency
							 | 
						||
| 
								 | 
							
								        res.push(num);
							 | 
						||
| 
								 | 
							
								        break;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  // Returning the maximum of the result array
							 | 
						||
| 
								 | 
							
								  return Math.max(...res);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								- [Run Code](https://repl.it/@ezioda004/Problem-4-Largest-palindrome-product)
							 | 
						||
| 
								 | 
							
								### References:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- [Wikipedia](https://en.wikipedia.org/wiki/Palindromic_number)
							 |