"use strict"; function main(formName) { let result = document.getElementById("result"); let a = document.forms[formName].elements[0].value; if (isNotNumber(a)) { result.textContent = "Ошибка: a не является числом!"; return; } else { a = Number(a); } let b = document.forms[formName].elements[1].value; if (isNotNumber(b)) { result.textContent = "Ошибка: b не является числом!"; return; } else { b = Number(b); } if (a > b) { result.textContent = "Ошибка: a не может быть больше b"; return; } result.textContent = "Результат: " + countPalindrome(a, b); } function countPalindrome(a, b) { let result = 0; let gen = makeRangeIterator(a, b); for (let num of gen) { if (isPalindrome(num)) { result++; } } return result; } function isPalindrome(num) { let strNumber = num.toString(); for (let i = 0; i <= strNumber.length / 2; i++) { let lastIndex = strNumber.length - 1 -i; if (strNumber[i] != strNumber[lastIndex]) { return false; } } return true; } function isNotNumber(val) { return val.replace(/\s/g, '').length === 0 || isNaN(val); } function* makeRangeIterator(start, end) { for (let i = start; i < end; i++) { yield i; } return end; }