У вас также должен быть метод, который вычисляет основные множители числа и возвращает его в виде списка. Вы передаете список простых чисел, полученных от primeNum, который возвращает список простых чисел вплоть до числа.
public static List<Integer> primeFactors(int number, List<Integer> primes) {
List<Integer> ans = new ArrayList<>();
// test condition includes number >= primes.get(i)
// so the loop exits when the current prime is greater than the number
for(int i = 0; i < primes.size() && number >= primes.get(i); i++){
while(number % primes.get(i) == 0){
ans.add(primes.get(i));
number = number / primes.get(i);
}
}
return ans;
}
Затем в вашем основном методе вы можете написать forl oop, который перебирает все числа от 1 до n и вызывать этот метод primeFactors каждые l oop. Вы перебираете результат, полученный при вызове этого метода, и добавляете эти простые числа в список. Наконец, вы можете отсортировать список, если хотите, чтобы числа были в порядке.
List<Integer> primes = primeNum(n);
for(int i = 1; i <= 10; i ++){
List<Integer> temp = primeFactors(i,primes);
for(int j = 0; j < temp.size(); j++){
list.add(temp.get(j));
}
}