Содержание

  1. Факты и правила
    1. Термы
      1. Атомы
      2. Числа
      3. Структуры
    2. Факты
      1. Объявление
      2. Переменные
      3. Запросы
    3. Правила
      1. Объявление
        1. Простые
        2. Конъюнкция
        3. Дизъюнкция
        4. Отрицание
        5. Рекурсия
      2. Запросы
        1. Унификация
        2. Порядок выполнения
        3. Возвраты и отсечения
  2. Вычисления
    1. Операторы и функции
    2. Рекурсивные вычисления
    3. Мемоизация
    4. Обратимые вычисления
  3. Списки
    1. Синтаксис
    2. Сопоставление с образцом
    3. Правила на списках
    4. Правила высшего порядка

Домашнее задание 12. Простые числа на Prolog

Простые числа на Prolog
  1. Разработайте правила:

    • prime(N), проверяющее, что N – простое число.
    • composite(N), проверяющее, что N – составное число.
    • prime_divisors(N, Divisors), проверяющее, что список Divisors содержит все простые делители числа N, упорядоченные по возрастанию. Если N делится на простое число P несколько раз, то Divisors должен содержать соответствующее число копий P.

  2. Варианты

    • Простой: N ≤ 1000.
    • Сложный: N ≤ 105.
    • Бонусный: N ≤ 107.
  3. Вы можете рассчитывать, на то, что до первого запроса будет выполнено правило init(MAX_N).