自除数

自除数 是指可以被它包含的每一位数除尽的数。

例如,128 是一个自除数,因为 128 % 1 == 0128 % 2 == 0128 % 8 == 0

还有,自除数不允许包含 0 。

给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。

输入: 
上边界left = 1, 下边界right = 22
输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]

<script>

    /**
     * @param {number} left
     * @param {number} right
     * @return {number[]}
     */
    var selfDividingNumbers = function(left, right) {

        var dividing_numbers = [];

        function init(){
            for(number = left; number <= right; number ++ ){

                if(is_dividing_number(number)){
                    dividing_numbers.push(number);
                }
            }
            console.log(dividing_numbers)
        }

        function is_dividing_number(number){

            if(number.toString().indexOf('0') > 0){
                return false;
            }

            if(number < 10){
                return true;
            } else {
                var number_array = number.toString().split(''),
                    status = 0
                number_array.forEach(function(divid_number) {
                    if( number % parseInt(divid_number) > 0 ){
                        status++
                    }
                });

                if(status > 0 ){
                    return false;
                } else {
                    return true;
                }
            }
        }
        init();
    };

    selfDividingNumbers(127, 128)

</script>

Comments are closed.