Can't understand Prolog line of code

2019-08-05 10:31发布

I am studying for a logic test and I saw an example of Perfect number problem There is many solutions to this however there is one that I am unsure how they have done it.

divisors(Number, D, L1, L2) :-
   X is Number / D,
   ( D < X -> D1 is D + 1, divsors(Number, D1, L1, L2) ; L1 = L2).
divisors(Number, D, L1, L2) :-
   0 is Number mod D, D1 is D + 1, X is Number / D,
   ( D =< X -> divisors(Number, D1, [X, D |L1], L2) ; L1 = L2).

标签: prolog
0条回答
登录 后发表回答