寫在前面的話
這篇是提前看了答案后,自己又寫的,還是會有心的問題
相比于追求好的算法而言,獨自完成會更好一些
畢竟,自己的人生得自己走,坑不踩不知道...
(一)題目描述
功能:輸入一個正整數(shù),按照從小到大的順序輸出它的所有質因子(重復的也要列舉)(如180的質因子為2?2?3?3?5?)
最后一個數(shù)后面也要有空格
輸入描述:
輸入一個long型整數(shù)
輸出描述:
按照從小到大的順序輸出它的所有質數(shù)的因子,以空格隔開。最后一個數(shù)后面也要有空格。
示例1
輸入
180
輸出
2 2 3 3 5
(二)解題思路
1、循環(huán)從2到輸入數(shù)的算術平方根
1)從2開始,是因為最小的質數(shù)是2;
2)題目要求輸出,所有的質數(shù),所以會多一層循環(huán),一直除找到的質數(shù),直到除盡;
for(let i=2;i<Math.sqrt(num);i++){
????while(tmp%i ==0){
????????str = str + i +' ';
????????tmp =tmp/i;
????}
}
2、處理特殊情況
最后一個數(shù),是質數(shù)的情況;
需要將最后一個質數(shù)也添加到之前的字符串中;
3、全部代碼

運行結果如下

通過彈窗
參考鏈接
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607?tpId=37&&tqId=21229&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking
以上