您的位置:首页 > 其它

数论模板(因子,素因子,约数)

2016-06-09 23:10 274 查看
得到素因子,存放在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自动排序                                                         
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: