vector<int>get_divisors(int n){
vector<int> res;for(int i =1; i <= n / i; i ++)if(n % i ==0){
res.push_back(n / i);}sort(res.begin(), res.end());return res;}
unordered_map<int,int> primes;//存储所有的指数和底数int x;
cin >> x;for(int i =2; i < x / i; i ++)while(x % i ==0){
x /= i;
primes[i]++;}if(x >1) primes[x]++;for(auto p : primes) res = res *(p.second +1);
约数试除法求约数 O(sqrt(n))思路依然为从小到大判断vector<int> get_divisors(int n){ vector<int> res; for(int i = 1; i <= n / i; i ++) if(n % i == 0) { res.push_back(n / i); } sort(res.begin(), res.end()); r