На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > Lisp
      Привет ребята кто может подсказать?

      Задание.

      Напишите функцию, которая определяет является ли данное натуральное число простым.
      Воспользуйтесь более общей задачей:
      (ispr n m) – “Число n не делится ни на одно число больше или равное m и меньше n”
      Имеем (ispr n m) истинно, во первых, если n=m, и во-вторых, если истинно (ispr n m+1)и n не делится на m.


      решение.

      Осталось Нам написать вспомогательную функцию – привожу «скелет» функции:

      (defun ispr (n m)
      (cond ((= n m) ?)
      ((zerop (mod n m)) ?)
      (t ?)
      )
      )
      Нам осталось только вместо ? вставить необходимый код.

      Блин не могу допетрить.
        Каноническая истина - символ T, ложь - символ NIL.

        ExpandedWrap disabled
          (defun ispr (n m)
            (cond ((<= n m) t)
                  ((zerop (mod n m)) nil)
                  (t (ispr n (1+ m)))))
          Alexey Dejneka, спасибо за помощь. +

          Добавлено
          Но может и такой листинг программы быть.
          Цитата


          (defun ispr (n m)
          (let((r(rem n m)))
          (if(zerop r) m (ged m r))))

          (defun ispr (n m+1))
          #'(lambda(x)(funcall n (funcall m+1x))))
          (funcall(n-ispr#'1 rem n)m))



          :whistle:
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0212 ]   [ 15 queries used ]   [ Generated: 7.05.24, 01:52 GMT ]