11.3 All Factor
Given a number N, find all factors of N.
Example:
N = 6 factors = [1, 2, 3, 6]
N = 36, factor=[1, 2, 3, 4, 6, 9, 12, 18, 36]
Make sure the returned array is sorted.
Note:
- We only need to check upto Math.sqrt(A)
- Co factor: if (num != A / num) { res.add(A / num); }
- Time: O(sqrt(N))
public class Solution {
public ArrayList<Integer> allFactors(int A) {
ArrayList<Integer> res = new ArrayList<>();
int sqrt = (int) Math.sqrt(A);
for (int num = 1; num <= sqrt; num++) {
if (A % num == 0) {
res.add(num);
if (num != A / num)
res.add(A / num);
}
}
Collections.sort(res);
return res;
}
}