题解 | #质数因子#

质数因子

http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

#include <iostream>
#include <vector>

using namespace std;

int main(){
    long num = 0; //
    cin >> num;
    vector<int> res;
    
    for(int i = 2; i * i <= num; ++i){ //2是最小的质因子 只需要验证一半便知2是不是质因子
        //cout<<num<<endl;
        while(num % i == 0){
            res.push_back(i);
            num /= i;         
        }        
    }
    //如果m=1,则while循环中刚好被质数分解完,如果大于1,说明没有被分解完,m就是那最后一个质数
    //同时,这句也可以应对输入为质数的特殊情况
    if(num >= 2) res.push_back(num); 
    
    for(int i = 0; i < res.size(); i++){
        cout << res[i] << " ";
    }
    cout << endl;
    
    return 0;
}
华为题库题解 文章被收录于专栏

牛客华为题库的题解

全部评论

相关推荐

06-26 17:24
已编辑
宁波大学 golang
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务