Q11. Print prime factors of a given number. e.g. for 54 Prime factors: 2, 3, 3, 3.
Answer:
import java.util.ArrayList;
import java.util.List;
public class Mathematics11 {
public static int[] getPrimeFactors(int n) {
List<Integer> factors = new ArrayList<Integer>();
for (int i = 2; i * i <= n; i++) {
while (n % i == 0) {
factors.add(i);
n /= i;
}
}
if (n > 1) {
factors.add(n);
}
int[] primeFactors = new int[factors.size()];
int i = 0;
for (Integer p : factors) {
primeFactors[i++] = p;
}
return primeFactors;
}
public static void main(String[] args) {
for (int i = 2; i <= 20; i++) {
System.out.print("Prime factors for " + i + ": ");
for (int n : getPrimeFactors(i)) {
System.out.print(n + " ");
}
System.out.println();
}
}
}
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.