aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrazetime <rraghu.11502@gmail.com>2023-11-01 19:22:32 +0800
committerrazetime <rraghu.11502@gmail.com>2023-11-01 19:22:32 +0800
commitebbba5e79c3bfbe017f84f131482087eb9bae924 (patch)
treef3a08fb5c2abb1953997232f8d16ee76b7e064f8
parentd62121105e46946977cf1824fbe0d52052ce53dc (diff)
downloadperlweeklychallenge-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.P15
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).