Skip to content

Instantly share code, notes, and snippets.

@pedrobritto
Last active July 15, 2021 13:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pedrobritto/51e2f15411ee10ac457b4c7e014de95f to your computer and use it in GitHub Desktop.
Save pedrobritto/51e2f15411ee10ac457b4c7e014de95f to your computer and use it in GitHub Desktop.
1) Generate Palindromic numbers and 2) In a list of numbers, get multiples of a given number
function makePalindromicNumber(number) {
const regularNumber = number.toString();
const reversedNumber = number.toString().split("").reverse().join("");
return Number(`${regularNumber}${reversedNumber}`);
}
function generatePalindromicNumberList(digits = 2) {
if (digits < 1) {
throw new Error("'digits' should be equal or greater than '1'.");
}
const initialValue = `1${Array(digits - 1)
.fill("0")
.join("")}`;
const finalValue = `9${Array(digits - 1)
.fill("9")
.join("")}`;
const numbers = [];
for (let number = initialValue; number <= finalValue; number++) {
numbers.push(makePalindromicNumber(number));
}
return numbers;
}
function getMultiplesOfNumberInList(divisor, array) {
const numbers = array
.map((number) => (number % divisor === 0 ? number : null))
.filter(Boolean);
const amount = numbers.length;
return {
amount,
numbers,
};
}
// Example usage
const palindromicNumbers = generatePalindromicNumberList(2);
const multiplesOf15 = getMultiplesOfNumberInList(15, palindromicNumbers);
// <- { amount: 3, numbers: [ 5115, 5445, 5775 ] }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment