1
我一直在试图做一个Prolog的问题来产生质数从1到N,但它不断回答真或假,我找不到错误。 查询例如:generatePrime(10,X)Prolog代码生成素数从1到N
isPrime(2) .
isPrime(P) :-
P > 2 ,
isDivisible(P , P-1) .
isDivisible(P , X) :-
X > 1,
P mod X =\= 0 ,
isDivisible(P , X-1) .
isDivisible(_ , X) :-
1 is X .
generatePrime(N , X) :-
not(isPrime(N)) ,
Z is N-1 ,
generatePrime(Z , X) .
generatePrime(N, X):-
isPrime(N) ,
X is N ,
Z is N-1 ,
generatePrime(Z , X) .
generatePrime(1 , X) :-
X is 1 .
你能发表一个你试过的查询和你得到的结果的例子吗? – Shevliaskovic
@Shevliaskovic查询是generatePrime(10,X)。 – user3091639
请注意,1不是素数 –