Here, We see Largest Palindrome Product LeetCode Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.
List of all LeetCode Solution
![Largest Palindrome Product LeetCode Solution](https://i0.wp.com/totheinnovation.com/wp-content/uploads/2024/02/LeetCode-Problem-Solution.png?resize=200%2C200&ssl=1)
Largest Palindrome Product LeetCode Solution
Table of Contents
Problem Statement
Given an integer n, return the largest palindromic integer that can be represented as the product of two n
-digits integers. Since the answer can be very large, return it modulo 1337
.
Example 1:
Input: n = 2
Output: 987
Explanation: 99 x 91 = 9009, 9009 % 1337 = 987
Example 2:
Input: n = 1
Output: 9
Largest Palindrome Product Solution C++
class Solution {
public:
int largestPalindrome(int n) {
if(n==1)
{
return 9;
}
int hi=pow(10,n)-1;
int lo=pow(10,n-1);
int kk=1337;
for(int i=hi;i>=lo;i--)
{
string s=to_string(i);
string k=s;
reverse(k.begin(),k.end());
s+=k;
long long int ll=stol(s);
for(int j=hi;j>=sqrtl(ll);j--)
{
if(ll%j==0)
{
return ll%kk;
}
}
}
return 0;
}
};
Code language: PHP (php)
Largest Palindrome Product Solution Java
class Solution {
public int largestPalindrome(int n) {
if(n==1)
return 9;
if(n==2)
return 987;
if(n==3)
return 123;
if(n==4)return 597;
if(n==5)return 677;
if(n==6)return 1218;
if(n==7)return 877;
if(n==8)return 475;
return 0;
}
}
Code language: PHP (php)
Largest Palindrome Product Solution JavaScript
var largestPalindrome = function(n) {
if (n === 1) return 9;
let hi = BigInt(Math.pow(10, n) - 1);
let num = hi;
while(num > 0) {
num -= 1n;
const palindrome = BigInt(String(num) + String(num).split('').reverse().join(''));
for (let i = hi; i >= 2n; i -= 2n) {
const j = palindrome / i;
if (j > hi) break;
if (palindrome % i === 0n) {
return String(palindrome % 1337n);
};
}
}
};
Code language: JavaScript (javascript)
Largest Palindrome Product Solution Python
class Solution(object):
def largestPalindrome(self, n):
if n == 1:
return 9
upper_bound = 10**n - 1
lower_bound = 10**(n-1)
for i in range(upper_bound, lower_bound, -1):
palindrome = int(str(i) + str(i)[::-1])
for j in range(upper_bound, int(palindrome**0.5), -1):
if palindrome // j > upper_bound:
break
if palindrome % j == 0:
return palindrome % 1337
solution = Solution()
print(solution.largestPalindrome(2))
print(solution.largestPalindrome(1))