diff options
| author | razetime <rraghu.11502@gmail.com> | 2023-11-01 19:22:32 +0800 |
|---|---|---|
| committer | razetime <rraghu.11502@gmail.com> | 2023-11-01 19:22:32 +0800 |
| commit | ebbba5e79c3bfbe017f84f131482087eb9bae924 (patch) | |
| tree | f3a08fb5c2abb1953997232f8d16ee76b7e064f8 | |
| parent | d62121105e46946977cf1824fbe0d52052ce53dc (diff) | |
| download | perlweeklychallenge-club-ebbba5e79c3bfbe017f84f131482087eb9bae924.tar.gz perlweeklychallenge-club-ebbba5e79c3bfbe017f84f131482087eb9bae924.tar.bz2 perlweeklychallenge-club-ebbba5e79c3bfbe017f84f131482087eb9bae924.zip | |
add prolog import
| -rw-r--r-- | challenge-241/razetime/prolog/ch-2.P | 15 |
1 files 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). |
