Как отобразить первые N натуральных чисел, зная делители в Лиспе
Выведите первые N натуральных чисел, делители которых всего 2, 3 и 7. Я написал что-то в этом роде. Я новичок в Лиспе. Спасибо!
defvar x 1
(defun numbers(n)
if(mod x 2 )
(loop for x from 1 to n
do(print x)
)
)
print(numbers())
1 ответ
Поскольку у меня было немного времени, вы могли бы взглянуть на это. Возможно, это не идеальное решение, но должно стать хорошей отправной точкой для новичка. Просмотрите книги на вкладке информации, чтобы разобраться в синтаксисе и т. Д.
(defun divisible-by (n m)
"Returns T if N is evenly divisible by M."
(zerop (mod n m)))
(defun numbers (n)
"Print all number upto N which are divisible by 2, 3 and 7."
(loop
for i from 1 upto N
if (and (divisible-by i 2) (divisible-by i 3) (divisible-by i 7))
do (format t "~D~%" i)))