Trick : 1 0 x 10^x 10x 以內最多的因子數
-
1 0 5 10^5 105 以內具有最多的因子數的數是 83160,它有 128 個因子 ;
-
1 0 6 10^6 106 以內具有最多因子數的數是 720720,它有 240 個因子 ;
所以遇到需要枚舉因子的,預處理之后大膽枚舉就可以, 時間復雜度很低
計算因子數代碼如下 :
int cal(int x){unordered_set<int> st;for(int i = 1; i <= x / i; i ++){if(x % i == 0){st.insert(i);st.insert(x / i);}}return st.size();
}void solve(){int num = -1, mx = -1;for(int i = 1; i <= 1e6; i ++){if(cal(i) > mx){mx = cal(i);num = i;}}cout << num << ' ' << mx << '\n';
}