• + 0 comments

    javascript

    function kaprekarNumbers(p, q) {
      let answer = [];
    
      function findlandr(n) {
        let numstr = n.toString();
        let d = numstr.length;
        let sqnum = n * n;
        let sqnumstr = sqnum.toString();
        let dsq = sqnumstr.length;
        let sqnumarr = sqnumstr.split('');
        let rd = d;
        let ld = dsq - rd;
        let larr = [];
        let rarr = [];
    
        for (let i = 0; i < ld; i++) {
          larr.push(sqnumarr[i]);
        }
        let l = parseInt(larr.join(''));
    
        for (let i = ld; i < dsq; i++) {
          rarr.push(sqnumarr[i]);
        }
        let r = parseInt(rarr.join(''));
    
        return [l, r];
      }
    
      for (let i = p; i <= q; i++) {
        let lr = findlandr(i);
        if (lr[0] + lr[1] === i) {
          answer.push(i);
        }
      }
    
      if (p === 1) {
        answer.unshift(1);
      }
       if(!answer.length){
          console.log('INVALID RANGE')
      }else{
          console.log(answer.join(' '));
      }
    }