# Solving Leetcode Interviews in Seconds with AI: Find the Largest Palindrome Divisible by K


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "3260" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> You are given two positive integers n and k. An integer x is called k-palindromic if:  x is a palindrome. x is divisible by k.  Return the largest integer having n digits (as a string) that is k-palindromic. Note that the integer must not have leading zeros.   Example 1:  Input: n = 3, k = 5 Output: "595" Explanation: 595 is the largest k-palindromic integer with 3 digits.  Example 2:  Input: n = 1, k = 4 Output: "8" Explanation: 4 and 8 are the only k-palindromic integers with 1 digit.  Example 3:  Input: n = 5, k = 6 Output: "89898"    Constraints:  1 <= n <= 105 1 <= k <= 9  

	# Explanation
	*   **Generate Palindromes:** Construct palindromes of length `n` by iterating through possible prefixes/suffixes.
*   **Check Divisibility:** For each generated palindrome, check if it is divisible by `k`.
*   **Maximize and Return:** Maintain the largest k-palindromic number found so far and return it as a string.

*   **Runtime Complexity:** O(10<sup>(n+1)/2</sup>), **Storage Complexity:** O(n)

	
	# Code
	```python
	def largest_k_palindromic(n: int, k: int) -> str:
    """
    Finds the largest n-digit k-palindromic integer.

    Args:
        n: The number of digits.
        k: The divisor.

    Returns:
        The largest n-digit k-palindromic integer as a string.
    """

    max_palindrome = -1

    start = 10**(n // 2 - (1 if n % 2 == 0 else 0))
    end = 10**(n // 2)

    for i in range(end -1, start - 1, -1):
        prefix = str(i)
        if n % 2 == 0:
            palindrome = prefix + prefix[::-1]
        else:
            palindrome = prefix + prefix[:-1][::-1]

        if int(palindrome) % k == 0:
            if max_palindrome == -1 and len(palindrome) == n and int(palindrome) >= 10**(n-1) :
               max_palindrome = int(palindrome)
            elif len(palindrome) == n and int(palindrome) >= 10**(n-1) and int(palindrome) > max_palindrome:
                max_palindrome = int(palindrome)


    if max_palindrome == -1:
        
        if n == 1:
           for i in range (9, 0, -1):
             if i % k == 0:
                return str(i)
        return ""
    else:
        return str(max_palindrome)
	```
			
