求一个数的质因数
一个大佬的博客: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);