Целочисленный квадратный корень из натурального числа N - Prolog

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

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

Задача:Напишите программу вычисления целочисленного квадратного корня из натурального числа N, определяемого как число I, такое, что I*I <= N, но (I+1)*(I+1) > N . Используйте определение предиката between/3 для генерирования последовательности натуральных чисел с помощью механизма возвратов. Прошу помощи так как испытываю проблемы с Prolog. Можно с пояснением кода

Решение задачи: «Целочисленный квадратный корень из натурального числа N»

textual
Листинг программы
predicates
isqrt_(integer,integer,integer)
isqrt(integer,integer)
 
clauses
isqrt_(I,Z,Z) :- Z*Z<=I, (Z+1)*(Z+1)>I.
isqrt_(I,Z,R) :- Z*Z<I, U=Z+1, isqrt_(I,U,R).
 
isqrt(I,R) :- isqrt_(I,1,R).

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

8   голосов , оценка 4.25 из 5
Похожие ответы