Напишите рекурсивную функцию, которая раскладывает число на обыкновенные сомножители.

Напишите рекурсивную функцию, которая раскладывает число на обыкновенные сомножители.
Пример:
Введите натуральное число: 378
378 = 2*3*3*3*7

Задать свой вопрос
Вера Хрящева
Язык написания - pascal
Taisija Daniliv
Занятно: факторизация чисел - одна из не самых обычных вычислительных задач
Тоня Флягонтова
А еще - традиционная функция в данном случае не может быть рекурсивной, потому что она обязана и возвращать значение, и одновременно поменять значение своего параметра, а поменять несколько значений - это теснее свойство не функции, а процедуры.
Владимир Егорычев
Даю Вам задание слово в слово, как написано у меня. От себя ни чего не прибавляю
Есения Детюченко
А к Для вас претензий нет. Наберите на веб-поисковике запрос "метод разложения числа на обыкновенные множители" - и Вы поймете, какую головную боль Для вас задали.
Злата Ковакина
Посодействовать можете?
Kolubanova Adelina
Как досадно бы это не звучало, нет, поэтому что не разумею, как тут сделать рекурсивную ФУНКЦИЮ. Она тут никаким боком не нужна.
Никитка Шептовалов
Эх, у меня та же неувязка, без рекурсии сделать могу, а с ней уже препядствия =(
1 ответ
Вариант без рекурсии - как просил позднее

function factorization ( numeric: integer ): integer;
var d: integer;
begin
write(numeric, ' = 1');
d := 2;
while numeric gt; 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.
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт