Если вы можете сгенерировать простые числа, вы можете сделать основную факторизацию. Единственная проблема в том, что это неизбежно медленно.
Простым способом является использование традиционных seive of eratosthenes для генерации простых чисел. Для каждого простого сгенерированного (в порядке возрастания) многократно проверяйте, делит ли он ваш номер. Каждый раз, когда это происходит, принимайте его как фактор и заменяете свой номер результатом деления. Когда вы больше не можете делиться, переходите к следующему простому.
Так что, если ваш номер был 20, вы бы сначала попробовать премьер 2.
20/2 = 10, so accept factor 2 and use number 10
10/2 = 5, so accept factor 2 and use number 5
5/2 = 2 rem 1, so move onto prime 3
5/3 = 1 rem 2, so move onto prime 5
5/5 = 1, so accept factor 5 and use number 1
Когда вы уменьшить количество оставшихся до 1, вы конца.
Как насчет 3 и 7, они также не являются первичными в диапазоне 1-10. –
У меня такое соблазн написать это, но я не буду ...Я предвижу очень простое рекурсивное решение, не намного дольше, чем этот псевдокод, если вы не считаете фигурные скобки. –