Напишите рекурсивную функцию, которая раскладывает число на простые сомножители. Пример: Введите натуральное число: 378 378 = 2*3*3*3*7
Язык написания - pascal
Занятно: факторизация чисел - одна из не самых простых вычислительных задач
А еще - классическая функция в данном случае не может быть рекурсивной, потому что она должна и возвращать значение, и одновременно менять значение своего параметра, а менять несколько значений - это уже свойство не функции, а процедуры.
Даю Вам задание слово в слово, как написано у меня. От себя ни чего не добавляю
А к Вам претензий нет. Наберите на интернет-поисковике запрос "алгоритм разложения числа на простые множители" - и Вы поймете, какую головную боль Вам задали.
Помочь сможете?
Увы, нет, потому что не понимаю, как тут сделать рекурсивную ФУНКЦИЮ. Она тут никаким боком не нужна.
Эх, у меня та же проблема, без рекурсии сделать могу, а с ней уже проблемы =(
Вариант без рекурсии - как просил позже function factorization ( numeric: integer ): integer; var d: integer; begin write(numeric, ' = 1'); d := 2; while numeric > 1 do begin if numeric mod d = 0 then begin write (' * ', d); numeric := numeric div d; end else inc(d); end; end; var x: integer; begin write('Введите число: '); readln(x); factorization(x); end.