Содержание
- Факты и правила
- Термы
- Атомы
- Числа
- Структуры
- Факты
- Объявление
- Переменные
- Запросы
- Правила
- Объявление
- Простые
- Конъюнкция
- Дизъюнкция
- Отрицание
- Рекурсия
- Запросы
- Унификация
- Порядок выполнения
- Возвраты и отсечения
- Объявление
- Термы
- Вычисления
- Операторы и функции
- Рекурсивные вычисления
- Мемоизация
- Обратимые вычисления
- Списки
- Синтаксис
- Сопоставление с образцом
- Правила на списках
- Правила высшего порядка
Домашнее задание 13. Простые числа на Prolog
Разработайте правила:
prime(N)
, проверяющее, чтоN
– простое число.composite(N)
, проверяющее, чтоN
– составное число.prime_divisors(N, Divisors)
, проверяющее, что списокDivisors
содержит все простые делители числаN
, упорядоченные по возрастанию. ЕслиN
делится на простое числоP
несколько раз, тоDivisors
должен содержать соответствующее число копийP
.
Варианты
- Простой:
N
≤ 1000. - Сложный:
N
≤ 105. - Бонусный:
N
≤ 107.
- Простой:
-
Вы можете рассчитывать, на то, что до первого запроса будет
выполнено правило
init(MAX_N)
.