Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Lisp
Перезагрузить страницу Несложный пример LISP.
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
AlexIachimov AlexIachimov вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.10.2016
По умолчанию Несложный пример LISP. - 06.10.2016, 22:02

Доброго времени суток. Я сам не знаток в LISP-е. Но нужно реализовать вот такой пример. Прошу помощи.
Найти все натуральные числа которые меньше либо равны N и которые в свою очередь делятся без остатки на компоненты числа N. К примеру число N = 13, Компоненты N = 1,3. Следовательно надо найти числа которые делятся и на 1 и на 3 без остатка.
Ответить с цитированием
  (#2 (permalink)) Старый
beroal beroal вне форума
Member
 
Сообщений: 108
Сказал(а) спасибо: 3
Поблагодарили 4 раз(а) в 4 сообщениях
Регистрация: 13.12.2002
По умолчанию 08.10.2016, 17:31

Что такое «компонент числа N»?
Ответить с цитированием
  (#3 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 25.12.2016, 13:00

lisp Код:
(defun int-digits (n &optional ac)
  (if (zerop n) ac
      (int-digits (truncate n 10)
                  (cons (rem n 10) ac))))

(defun perfect (n)
  (loop for a from 1 to n
        when (loop for b in (remove 0 (int-digits a))
                   always (zerop (rem a b)))
        collect a))

> (perfect 200)
(1 2 3 4 5 6 7 8 9 10 11 12 15 20 22 24 30 33 36 40 44 48 50 55 60 66 70 77 80
 88 90 99 100 101 102 104 105 110 111 112 115 120 122 124 126 128 132 135 140
 144 150 155 162 168 175 184 200)


vk.com/ansicommonlisp
Ответить с цитированием
  (#4 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 25.12.2016, 13:26

lisp Код:
(defun int-digits (n &optional ac)
  (if (zerop n) ac
      (int-digits (truncate n 10)
                  (cons (rem n 10) ac))))
 
(defun perfect (n)
  (loop for a from 1 to n
        when (loop for b in (remove 0 (int-digits n))
                   always (zerop (rem a b)))
        collect a))
 
> (perfect 200)
(2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54
 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104
 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142
 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172 174 176 178 180
 182 184 186 188 190 192 194 196 198 200)


vk.com/ansicommonlisp
Ответить с цитированием
  (#5 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 25.12.2016, 13:28

lisp Код:
(defun int-digits (n &optional ac)
  (if (zerop n) ac
      (int-digits (truncate n 10)
                  (cons (rem n 10) ac))))

(defun perfect (n)
  (loop for a from 1 to n
        when (loop for b in (remove 0 (int-digits n))
                   never (plusp (rem a b)))
        collect a))

> (perfect 13)
(3 6 9 12)
> (perfect 20)
(2 4 6 8 10 12 14 16 18 20)


vk.com/ansicommonlisp
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 26.12.2016, 10:10

lisp Код:
(defun int-digits-zero- (n &optional ac &aux (r (rem n 10)))
  (if (zerop n) ac
      (int-digits (truncate n 10)
                  (if (zerop r) ac (cons r ac)))))
 
(defun perfect (n)
  (loop for a from 1 to n
        when (loop for b in (int-digits-zero- n)
                   always (zerop (rem a b)))
        collect a))

> (perfect 234)
(12 24 36 48 60 72 84 96 108 120 132 144 156 168 180 192 204 216 228)


vk.com/ansicommonlisp
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новый несложный компьютер Жорик Апгрейд 5 19.04.2015 17:04
пример gui для экспертной системы(любой, главное пример), желательно в VP 5.2 Гном1996 Prolog 9 17.12.2014 22:35
Несложный вопрос)) BlacKJacK Видеокарты 8 03.01.2012 19:06
Заплачу за пример! Shturmovik Задания за деньги 7 13.01.2007 07:23
COM c VB на C# как запустить пример IQ7 .NET 0 19.02.2006 16:12
Пример TSR-программы под DOS на C++ YDA Вопросы начинающих программистов 6 11.12.2005 11:26
Ресурсы как решить пример Devill С/С++ 4 03.11.2005 00:54
Пример калькулятора Filanton Visual Basic 1 21.09.2004 23:23
Пример клавиатурного хука Garik WinAPI 3 09.06.2004 12:55
Нужен пример GUI VIP 6.1 OKey Prolog 4 03.02.2004 16:02
Где найти пример RAS сервера VC++ Anonymous Visual C++ 0 01.02.2004 04:31
Как откомпелировать пример из DDK Anonymous С/С++ 3 10.10.2003 11:46



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов