Факторизация - это разложение числа на произведение простых чисел.
Например: число 100 разлагается на 2 * 2 * 5 * 5.
Ниже приведена реализация на Java с алгоритмической сложностью sqrt(N).
Мы перебираем делители он 2 до квадратного корня из факторизируемого числа, и делим число на делитель, пока это возможно.
В конце остается либо 1, либо простое число, которое добавляется в результат.
Listfactorization(int num) { List factors = new ArrayList(); for (int i = 2; i