美文网首页
算法题目-正整数分解质因数

算法题目-正整数分解质因数

作者: MacXin | 来源:发表于2018-03-02 10:39 被阅读0次

    题目

        将一个正整数分解质因数。例:输入90,打印出90=2*3*3*5。    

    解题思路

        对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

    JavaScript

    // test func

    // 将给出的值与获得结果的数组的乘积进行对比

    function testFuc(n, arr){

      let flag = true

      if(!Array.isArray(arr) || arr.length == 0){

        flag = false

        return flag

      }

      let arrPro = arr.reduce((pre, cur) => pre*cur)

      if(n != arrPro){

        flag = false

      }

      return flag

    }

    // 算法函数

    function func(n){

      let results = []

      for(let i=2; i<= n; i++){

        while(n != i){

          if(n % i == 0){

            results.push(i)

            n = n/i

          } else {

            break;

          }

        }

        if(i == n){

          results.push(i)

        }

      }

      return results

    }

    // 运行

    console.log(testFuc(90, func(90)))

    参考链接:

        http://www.manonggu.com/suancheng/view1101.html

    相关文章

      网友评论

          本文标题:算法题目-正整数分解质因数

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