写在前面的话

这篇是提前看了答案后,自己又写的,还是会有心的问题

相比于追求好的算法而言,独自完成会更好一些

毕竟,自己的人生得自己走,坑不踩不知道...

 

(一)题目描述

功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )

最后一个数后面也要有空格

输入描述:

输入一个long型整数

输出描述:

按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。

示例1

输入

180

输出

2 2 3 3 5

 

(二)解题思路

1、循环从2到输入数的算术平方根

1)从2开始,是因为最小的质数是2;

2)题目要求输出,所有的质数,所以会多一层循环,一直除找到的质数,直到除尽;

for(let i=2;i<Math.sqrt(num);i++){

    while(tmp%i ==0){

        str = str + i +' ';

        tmp =tmp/i;

    }

}

2、处理特殊情况

最后一个数,是质数的情况;

需要将最后一个质数也添加到之前的字符串中;

3、全部代码

 

Day 33/100 (华为机试)质数因子

运行结果如下

Day 33/100 (华为机试)质数因子

通过弹窗

 

参考链接

https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607?tpId=37&&tqId=21229&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking

 

以上

 

 

相关文章:

  • 2021-11-30
  • 2021-07-12
  • 2022-12-23
  • 2021-04-28
  • 2021-09-24
  • 2022-01-07
  • 2022-12-23
  • 2021-12-01
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-08
  • 2021-10-05
  • 2021-07-25
  • 2021-10-22
相关资源
相似解决方案