下面是一个示例的Prolog代码,用于编写一个isSquare函数来判断一个数是否是完全平方数。
isSquare(N) :-
integer(N), % 检查N是否为整数
N >= 0, % 检查N是否大于等于0
sqrt(N, Sqrt), % 计算N的平方根
integer(Sqrt), % 检查平方根是否为整数
Sqrt * Sqrt =:= N. % 检查平方根的平方是否等于N
该函数首先检查输入参数N是否为整数,并且大于等于0。然后,通过计算N的平方根,并检查它是否为整数,最后判断平方根的平方是否等于N。如果满足这些条件,则返回true,否则返回false。
以下是一些调用isSquare函数的示例:
?- isSquare(16).
true.
?- isSquare(25).
true.
?- isSquare(10).
false.
?- isSquare(-4).
false.
这些示例中,数字16和25是完全平方数,因此isSquare函数返回true。而数字10和-4不是完全平方数,因此isSquare函数返回false。