【思路】:
这道题给出一个数a,需要分解因式。一个数的因式分解范围是从[2,sqrt(a)],从2开始到a的平方根范围,这些都是a的因子。
首先我们需要判断a这个整数从2开始,是否可以整除范围中的数,如果整出了,说明范围中的数就是其中一个因子。因为整除因子从除1最小数开始遍历因字数,所以需要将a这个数缩小范围,当a为12的时候,12最开始整除2,如果a这个数能够整除2,那么将a的值缩小a/=2,变成6,使得6再从2开始整除,整出到最后剩下一个质数3,那么会跳出for循环的条件,存在质数的情况,我们单独将它处理。这些因子我们可以存放在vector中保存。如果这个数大于1,那么说明它是质数,将它push_back到vector中。
最后要注意的是,牛客给出的测试用例,最后输出需要注意格式,有空格,这样才能通过测试。
// write your code here
#include <iostream>
#include <vector>
using namespace std;
//分解因子
void factorSub(int a,vector<int>& factor)/