I have written Prolog code to (try) find prime numbers between 0 and N. I am however unable to filter out composite numbers.
Any advice would be great.
check(N, 2) :-
N mod 2 =:= 0.
plist(N, List) :-
X>1,
findall(Z, between(1, N, Z), L1),
list(L1, 2, List).
list([], _, []).
list([H | Tail1], 2, [H | Tail2]) :-
\+ divide(H, 2),
list(Tail1, 2, Tail2).
list([H | Tail1], 2, List) :-
divide(H, 2),
list(Tail1, 2, List).