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