Problem 43

Run Settings
LanguageJavaScript
Language Version
Run Command
function eraseFromArray(arrayToBeErasedFrom, arrayToErase) { return arrayToBeErasedFrom.filter(x => !(arrayToErase.includes(x))) } function arrayToNumber(inputArr) { return inputArr.reduce((a, b, index) => a + b * 10 ** (inputArr.length - index - 1), 0); } function generateCountingArray(num) { let resultArr = []; for (let o = 1; o <= 10; o++) { resultArr.push(o); } return resultArr; } function checkFunction(arrayToCheck, indicesToSum, num) { const testArray = indicesToSum.map(x => arrayToCheck[x-1]) return arrayToNumber(testArray) % num === 0 } function isApplicable(arrayToCheck) { const checkArr = [ [[2,3,4] , 2], [[3,4,5] , 3], [[4,5,6] , 5], [[5,6,7] , 7], [[6,7,8] ,11], [[7,8,9] ,13], [[8,9,10] ,17] ] for (let inp of checkArr) { if (!checkFunction(arrayToCheck,...inp) && arrayToCheck.length === inp[0][2]) { return false; } } return true; } function findApplicablePandigital(inputArr, arr) { const remArr = eraseFromArray(arr, inputArr ); if (!isApplicable(inputArr)) { return []} let resultArr = inputArr.length === 10 ? [inputArr] : []; for (let item of remArr) { resultArr = [...resultArr, ...findApplicablePandigital([...inputArr, item], arr)] } return resultArr; } const resultat = findApplicablePandigital([],[0,1,2,3,4,5,6,7,8,9]).map(arrayToNumber) console.log(resultat.reduce((a,b) => a + b, 0))
Editor Settings
Theme
Key bindings
Full width
Lines