我正在尝试学习Prolog,并且我找到了一个示例,我需要实现一个程序来检查一个数字是否是一个素数是否为素数。
我试图遵循的逻辑是使递归规则除以所有小于该谓词的数字,直到它达到X>2
的基本情况,因为0
和{{ 1}}不是素数并且可以自己整除
我的代码到现在为止:
1
有人可以帮忙吗?
答案 0 :(得分:3)
如果您不关心效率,这很容易。
isPrime(X) :-
X > 1,
succ(X0, X),
\+ (between(2, X0, N), 0 is X mod N).
:)