求一个数的质因数


一个大佬的博客:https://blog.csdn.net/no_O_ac/article/details/82155804

大佬这种方法很巧妙:

这种方法的原理是:一个数(num>=2)必定可以写成只由质数相乘的形式

cin >> x;
vector<int> a;
for(int j = 2; j * j <= x; j++) {
    while(x % j == 0) {
//去掉重复的质因数,保证分化为都是质因数相乘;

        a.push_back(j);
        x /= j;
    }
}
if(x > 1)
//这样就可以避免从2--n去枚举,因为当num a.push_back(x);