Prolog - Como saber si un numero es primo en ProLog?

   
Vista:

Como saber si un numero es primo en ProLog?

Publicado por Hide (2 intervenciones) el 08/02/2015 16:39:30
Buenas a todos, estaba buscando por Internet como saber si un numero es primo pues estoy empezando en prolog y aun no le pillo bien. Buscando encontré esto:

cicloP(N,A,S):-A>N,S is 0,!.
cicloP(N,A,S):- N mod A=:=0,A=\=N,A1 is A+1,cicloP(N,A1,Sm),S is Sm+A,!.
cicloP(N,A,S):- A1 is A+1,cicloP(N,A1,Sm),S is Sm.
perfect(N):-cicloP(N,1,T),T=:=N.
verifPrimo(N):-cicloP(N,1,T),T=:=1;N=:=1.

Me funciona pero no entiendo bien que es el Sm, que valor tiene o que función cumple en la función, si alguien pudiera explicármelo estaría muy agradecido.

Gracias de antemano ^^
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder