检查Prolog中是否有素数

时间:2014-04-26 00:03:32

标签: recursion prolog primes

我正在尝试学习Prolog,并且我找到了一个示例,我需要实现一个程序来检查一个数字是否是一个素数是否为素数。

我试图遵循的逻辑是使递归规则除以所有小于该谓词的数字,直到它达到X>2的基本情况,因为0和{{ 1}}不是素数并且可以自己整除

我的代码到现在为止:

1

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

如果您不关心效率,这很容易。

isPrime(X) :-
  X > 1,
  succ(X0, X),
  \+ (between(2, X0, N), 0 is X mod N).

:)