Programa Prolog para verificar si un número es primo

Escribí el siguiente programa basado en la lógica de que un número primo solo es divisible por 1 y en sí mismo. Así que solo paso por el proceso de dividirlo en todos los números que son mayores que uno y menores que sí mismo, pero parece que tengo un problema ya que obtengo todos los números ingresados como verdaderos. Aquí está mi código ...

divisible(X,Y) :-
    Y < X,
    X mod Y is 0,
    Y1 is Y+1,
    divisible(X,Y1).

isprime(X) :-
    integer(X),
    X > 1,
    \+ divisible(X,2).

Gracias por adelantado :)

Respuestas a la pregunta(5)

Su respuesta a la pregunta