O( sqrt(n) )
//判断素数
bool check(int a){
for(int i=2;i*i<=a;i++){
if(a%i==0) return 0;
}
return 1;
}
//筛素数,把2~x的所有素数放入p[N]中
//
const int N=1e7;//1e7时1s
int p[N];
bool st[N];
int cnt=0;
void check(int x){
for(int i=2; i<=x; i++){
if(!st[i]){//st[i]=0时为素数
p[cnt++]=i;
}
for(int j=i; j<=x; j+=i)
st[j]=1;//消掉所有和数
}
}
O( sqrt(n) )
//求所有约数,放入set中
//
void check(int n){
set<int> res;
for (int i = 1; i <= n/i; i++) {
if (n%i == 0) {//i和n/i都是n约数
res.insert(i);
res.insert(n/i);
}
}
for (auto item : res)
cout << item << " ";
puts("");
}