Список простых чисел на заданном интервале - Lisp

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

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

Доброго времени суток! Напишите программу, формирующую список простых чисел на заданном интервале.

Решение задачи: «Список простых чисел на заданном интервале»

textual
Листинг программы
  1. (defun primes (n m)
  2.   (cond ((> n m) nil)
  3.         ((primep n) (cons n (primes (1+ n) m)))
  4.         (t (primes (1+ n) m))))
  5.  
  6. (defun primep (n)
  7.   (loop for a from 2 to (isqrt n)
  8.         never (zerop (mod n a))))
  9.  
  10. > (primes 1 100)
  11. (1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97)

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

В коде используется функция primes, которая принимает два аргумента — n и m. Функция возвращает список простых чисел на заданном интервале [n..m]. Если n больше m, то возвращается nil. Простая функция primep проверяет, является ли число n простым. Она использует цикл loop, который выполняет итерацию от 2 до квадратного корня из n. Если остаток от деления n на любое число из этого диапазона равен нулю, то число n не является простым и функция возвращает nil. Если после выполнения цикла loop значение функции primep остается неопределенным, то число n является простым и функция возвращает n. В основной части кода вызывается функция primes с аргументами 1 и 100. Возвращаемый список простых чисел на интервале от 1 до 100 выводится на экран.

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


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

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

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

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

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

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