Toggle navigation
?
users online
Logout
Open hangout
Open chat for current file
factors(N, Factors) :- Nm1 is N - 1, findall( CandidateFactor, ( between(1, Nm1, CandidateFactor), 0 is N mod CandidateFactor ), Factors ). list_sublist([H|T], [H|SubT]) :- list_sublist(T, SubT). list_sublist([_|T], SubT) :- list_sublist(T, SubT). list_sublist([], []). summable(N, Numbers) :- list_sublist(Numbers, Sublist), sum_list(Sublist, N), !. %only care if it succeeds once practical(N) :- succ(Nm1, N), factors(N, Factors), findall( Num, (between(1, Nm1, Num), summable(Num, Factors)), Summables ), length(Summables, Nm1). /** <examples> ?- practical(12). ?- practical(10). */