得到素因子,存放在fac中
vector<int> fac;
int get_prim(int n){
fac.clear();
for(LL i=2;i*i<=n;i++){
if(n%i==0){
fac.push_back(i);
while(n%i==0)n/=i;
}
}
if(n>1)fac.push_back(n);
}
得到约数,放在st中
set<int>st;
void get_fac(int x){
st.clear();
for(int i=1;i<=(int)sqrt((double)x);i++){
if(x%i==0){
st.insert(i);
st.insert(x/i);
}
}
}
因子的定义是去除平凡约数1的约数为因子,只需要把st的第一个元素去掉即可。st自动排序