function solution(N) { return pow11(N).filter(el => el === 1).length; } function pow11(N){ let res = [1]; for (let i=0; i< N; i++){ multiply11(res); } return res; } function multiply11(arr){ arr.push(0); let tmp = 0; for (let i=arr.length -1; i > 0; i--){ arr[i] = arr[i] + arr[i-1] + tmp; if(arr[i]>=10){ tmp = Math.floor(arr[i]/10); arr[i] = arr[i]%10; } } const head = arr[0] + tmp; arr.splice(0, 1, ...head.toString().split('').map(Number)); return arr; } console.log("solution(77)", solution(77)); console.log("solution(77)", Math.pow(11, 77));