美文网首页
Javascript 拆解合数算法

Javascript 拆解合数算法

作者: 我是一个前端 | 来源:发表于2019-10-23 19:08 被阅读0次

面试题,实现一个方法,fn(num)接收一个数字参数,要求输出数字数组,数组内数字的乘积等于传入的参数,要求输出数组长度越长越好。

fn(6) 输出[2,3]
fn(8) [2,2,2]
fn(15) [3,5]

    function dismant(num,arr=[]){
        //所有因数都从2开始
        let i = 2
        //如果num是1、2、3没有因数直接返回
        if(num === 1 || num === 2 || num === 3){
            arr.push(num)
            return arr
        }
        //这个是核心:如果num从2开始找因数 一直找到自己的一半还没找到那么就证明它没有因数了。
        for(i; i < num/2 ; i++){
            if(num % i === 0){
                //存储最小的因数
                arr.push(i)
                //除以因数后 递归执行
                return dismant(num/i,arr)
            }
        }
        // 最后num既不是123,又找不到因数
        arr.push(num)
        return arr
    }

    console.log(dismant(155)) //[5,31]

相关文章

  • Javascript 拆解合数算法

    面试题,实现一个方法,fn(num)接收一个数字参数,要求输出数字数组,数组内数字的乘积等于传入的参数,要求输出数...

  • 组合数算法

    一、概念 什么是组合数呢? 从m个不同元素中取出n(n≤m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元...

  • 如何实现 a == c, b == c成立,a == b 不成立

    在JavaScript中,利用 复合数据类型的拆箱,使两个不同的复合数据类型拆箱得到的值相同。 原理:复合数据类型...

  • 49_深入聚合数据分析_cardinality算法之优化内存开销

    49_深入聚合数据分析_cardinality算法之优化内存开销以及HLL算法 cardinality,count...

  • 基础语法-对象

    JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。 JavaScript用一个{...}表示...

  • 对象

    JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。 JavaScript的对象用于描述现实世...

  • JS--对象

    JS 对象JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。JavaScript用一个{.....

  • [JavaScript] (Day-05) - 对象

    JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。JavaScript的对象用于描述现实世界...

  • JS基础回顾:对象

    JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。 【示例一】: JavaScript用一个...

  • 【JavaScript 算法与数据结构】

    README.md JavaScript 算法与数据结构 本仓库包含了多种基于 JavaScript 的算法与数据...

网友评论

      本文标题:Javascript 拆解合数算法

      本文链接:https://www.haomeiwen.com/subject/atzkvctx.html