写在前面的话
这篇是提前看了答案后,自己又写的,还是会有心的问题
相比于追求好的算法而言,独自完成会更好一些
毕竟,自己的人生得自己走,坑不踩不知道...
(一)题目描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如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、全部代码
运行结果如下
参考链接
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607?tpId=37&&tqId=21229&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking
以上