解法一
从1到对n开方遍历求n的因子,另一半直接通过n/i求得。
class Solution {public int kthFactor(int n, int k) {List<Integer> factors = new LinkedList<>();List<Integer> factors_ = new LinkedList<>();for (int i = 1; i <= Math.sqrt(n); ++i) {if (n % i == 0) {factors.add(i);if (i != n/i) {factors_.add(n / i);}}}Collections.reverse(factors_);factors.addAll(factors_);if (k > factors.size()) {return -1;} else {return factors.get(k - 1);}}}
