FCC: Project Euler: Problem 4: Largest palindrome product
https://learn.freecodecamp.org/coding-interview-prep/project-euler/problem-4-largest-palindrome-product
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two
n
-digit numbers.
My solution:
function largestPalindromeProduct(n) {
let largestPalindrome = 0; //tracker
//get starting and ending numbers of n-digit numbers
let lowest = "1";
while (n > 1) {
lowest += "0";
n--;
}
let largest = parseInt(lowest + "0") - 1;
lowest = parseInt(lowest);
//start with largest number since likely to get to largest palindrome first
for (let i = largest; i >= lowest; i--) {
for (let j = largest - 1; j >= lowest; j--) {
let number = i * j;
//check if number is greater before checking if palindrome for efficiency
if (number > largestPalindrome) {
//check if number is also a palindrome
if (number == number.toString().split("").reverse().join("") ) {
largestPalindrome = number;
}
}
//no need to go further down the loop as they'll be less than largestPalindrome
else if (number <= largestPalindrome) break;
}
}
return largestPalindrome;
}
largestPalindromeProduct(3);
Comments
Post a Comment