Нужен способ факторинга большого количества в мл, без учета 1 и числа. Мой способ работает только для небольших чисел, он включает в себя в основном запуск с минимально возможными 2 факторами и проверку, если при умножении они равны числу, в противном случае продолжайте цикл. Это не работает для больших чисел, так как это заняло бы слишком много рекурсивных вызововФакторинг большого количества
fun factor n=
let
val f1 = 2
val f2 = 3
fun lp f1 f2 = if f1 *f2 = n then (f1,f2)
else if f2 = (n-1)
then lp (f1+1) 2
else lp f1 (f2+1)
in
(lp f1 f2)
end;
Не существует хорошего классического алгоритма для факторинга больших чисел, он растет экспоненциально с увеличением размера ввода , По большому счету, сколько цифр мы говорим? –
более 15 цифр – user4348719
Вы не улучшаете вопросы, проверяя каждую пару кандидатов дважды и никогда не заканчивая, если параметр является простым. – molbdnilo