题解 | #质数因子#

质数因子

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;
}
华为题库题解 文章被收录于专栏

牛客华为题库的题解

全部评论

相关推荐

头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
Lorn的意义:你这标个前端是想找全栈吗?而且项目确实没什么含金量,技术栈太少了,边沉淀边找吧 现在学院本想就业好一点四年至少得高三模式两年加油吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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