/**
* @function isPalindromeIntegerNumber
* @param { Number } x
* @returns {boolean} - input integer is palindrome or not
*
* time complexity : O(log_10(N))
* space complexity : O(1)
*/
export function isPalindromeIntegerNumber(x) {
if (typeof x !== 'number') {
throw new TypeError('Input must be a integer number')
}
// check x is integer
if (!Number.isInteger(x)) {
return false
}
// if it has '-' it cannot be palindrome
if (x < 0) return false
// make x reverse
let reversed = 0
let num = x
while (num > 0) {
const lastDigit = num % 10
reversed = reversed * 10 + lastDigit
num = Math.floor(num / 10)
}
// compare origin x and reversed are same
return x === reversed
}