From ebbba5e79c3bfbe017f84f131482087eb9bae924 Mon Sep 17 00:00:00 2001 From: razetime Date: Wed, 1 Nov 2023 19:22:32 +0800 Subject: add prolog import --- challenge-241/razetime/prolog/ch-2.P | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/challenge-241/razetime/prolog/ch-2.P b/challenge-241/razetime/prolog/ch-2.P index 0dcef4012f..6d533199d3 100644 --- a/challenge-241/razetime/prolog/ch-2.P +++ b/challenge-241/razetime/prolog/ch-2.P @@ -1,16 +1,19 @@ :- use_module(library(clpz)). :- use_module(library(reif)). :- use_module(library(pairs)). +:- use_module(library(lists)). r_div(A,B,true):-A mod B#=0. r_div(A,B,false):-A mod B#>0. -np_(C,_,1,C). np_(C,Cp,N,P):- - if_( - r_div(N,Cp), - (Q#=N/Cp,D#=C+1,np_(D,Cp,Q,P)), - (Np#=Cp+1,np_(C,Np,N,P)) - ). + if_(=(N,1), + P=C, + if_( + r_div(N,Cp), + (Q#=N/Cp,D#=C+1,np_(D,Cp,Q,P)), + (Np#=Cp+1,np_(C,Np,N,P)) + ) + ). np(N,P):-np_(0,2,N,P). ch2(A,S):-maplist(np,A,B),pairs_keys_values(P,B,A),keysort(P,Q),pairs_values(Q,S). -- cgit