Палиндром помогите теорией

Здравствуйте, решений задачи много но хотелось бы решить как в подсказки, математический, нашел как избавить от остатка, если правильно нашел. Так вот написал топорный код ("го*но код) но по подсказки в теории , с трехзначным числом справляется как : 505 , 202; а вот с большем к примеру с четырехзначным вроде как 1221 выводит 122,2. Не могли бы помочь мне как правильно дать на проверку цикл и как решить проблему. Xочется решить задачу только изученный нашим “молотком”- циклом без превращения в строку и т.д ). Пожалуйста не пишите код а дайте правильный алгоритм или формулу чтоб саму понять до конца.

var poly = 303;
var ylop = 0;
var copyPoly = poly;
var isPalindrome = false;
var ostatok = 0;
while (poly > 0) {
  if(poly === ylop) {
    break;
  }
  ostatok = poly % 10; 
  copyPoly =copyPoly / 10;
  copyPoly = (poly - ostatok) / 10; 
  ylop = ostatok * 10 + copyPoly % 10;
  copyPoly = copyPoly / 10; 
  ylop = ylop * 10 + copyPoly % 10;
  
}
console.log(ylop);