Как написать делители числа n? - Lisp

Узнай цену своей работы

Формулировка задачи:

Как написать делители числа n?

Решение задачи: «Как написать делители числа n?»

textual
Листинг программы
  1. (defun divisors (n &optional (m (truncate (/ n 2))))
  2.   (when (plusp m) (if (zerop (rem n m))
  3.                       (cons m (divisors n (1- m)))
  4.                       (divisors n (1- m)))))
  5.  
  6. > (divisors 100)
  7. (50 25 20 10 5 4 2 1)
  8. > (divisors 99)
  9. (33 11 9 3 1)

Объяснение кода листинга программы

В коде определённая функция divisors для вычисления всех делителей числа n. Если число m больше или равно n, то возвращается список делителей n, Если число m меньше n, то рекурсивно вызывается функция divisors для вычисления делителей числа n с новым значением m равным m-1. Если число m равно n, то возвращается пустой список. Для вычисления делителей числа 100 получается список (50,25,20,10,5,4,2,1), для числа 99 - (33,11,9,3,1).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы