File size: 989 Bytes
9438a57 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import java.util.*;
/**
* Prime Factorization
*
*
* Factors an int using naive trial division.
*
* Input:
* n: An int to factor
*
* Output:
* A list of the prime factors of n in sorted order with repetition
*
* Precondition:
* n >= 1
*
* Examples:
* >>> get_factors(1)
* []
* >>> get_factors(100)
* [2, 2, 5, 5]
* >>> get_factors(101)
* [101]
*
* @author derricklin
*/
public class GET_FACTORS {
public static ArrayList<Integer> get_factors(int n) {
if (n == 1) {
return new ArrayList<Integer>();
}
int max = (int)(Math.sqrt(n) + 1.0);
for (int i=2; i < max; i++) {
if (n % i == 0) {
ArrayList<Integer> prepend = new ArrayList<Integer>(0);
prepend.add(i);
prepend.addAll(get_factors(n / i));
return prepend;
}
}
return new ArrayList<Integer>(Arrays.asList(n));
}
}
|