diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2023-11-01 22:49:25 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-01 22:49:25 +0000 |
| commit | e4782a4b3f10855757a8def3ac839a69b5ee2cf0 (patch) | |
| tree | d9f76d48626bb7248ccc0649e2db87c10c2f1335 | |
| parent | 4c7c8441a1be0e999747be281b9a05ee6bf64863 (diff) | |
| parent | ebbba5e79c3bfbe017f84f131482087eb9bae924 (diff) | |
| download | perlweeklychallenge-club-e4782a4b3f10855757a8def3ac839a69b5ee2cf0.tar.gz perlweeklychallenge-club-e4782a4b3f10855757a8def3ac839a69b5ee2cf0.tar.bz2 perlweeklychallenge-club-e4782a4b3f10855757a8def3ac839a69b5ee2cf0.zip | |
Merge pull request #8985 from razetime/razetime-241
challenge 241 solutions
| -rw-r--r-- | challenge-241/razetime/bqn/ch-1.bqn | 4 | ||||
| -rw-r--r-- | challenge-241/razetime/bqn/ch-2.bqn | 4 | ||||
| -rw-r--r-- | challenge-241/razetime/factor/ch-1.factor | 11 | ||||
| -rw-r--r-- | challenge-241/razetime/factor/ch-2.factor | 5 | ||||
| -rw-r--r-- | challenge-241/razetime/prolog/ch-1.P | 13 | ||||
| -rw-r--r-- | challenge-241/razetime/prolog/ch-2.P | 19 | ||||
| -rw-r--r-- | challenge-241/razetime/raku/ch-1.raku | 16 | ||||
| -rw-r--r-- | challenge-241/razetime/raku/ch-2.raku | 15 |
8 files changed, 87 insertions, 0 deletions
diff --git a/challenge-241/razetime/bqn/ch-1.bqn b/challenge-241/razetime/bqn/ch-1.bqn new file mode 100644 index 0000000000..63e335fa0d --- /dev/null +++ b/challenge-241/razetime/bqn/ch-1.bqn @@ -0,0 +1,4 @@ +Ch1←{d←-⌜˜𝕩,+´(𝕨=-d)⌊○(+˝)𝕨=d} +! 2 ≡ 3 Ch1 0‿1‿4‿6‿7‿10 +! 2 ≡ 2 Ch1 4‿5‿6‿7‿8‿9 + diff --git a/challenge-241/razetime/bqn/ch-2.bqn b/challenge-241/razetime/bqn/ch-2.bqn new file mode 100644 index 0000000000..632a2ff23d --- /dev/null +++ b/challenge-241/razetime/bqn/ch-2.bqn @@ -0,0 +1,4 @@ +Ch2←{𝕩⊏˜⍋2⊸{𝕩<2 ? 0; 0=𝕨|𝕩 ? 1+𝕨𝕊𝕩÷𝕨; (𝕨+1)𝕊𝕩}¨𝕩} +! 11‿4‿8‿27 ≡ Ch2 11‿8‿27‿4 + + diff --git a/challenge-241/razetime/factor/ch-1.factor b/challenge-241/razetime/factor/ch-1.factor new file mode 100644 index 0000000000..1db73bccd2 --- /dev/null +++ b/challenge-241/razetime/factor/ch-1.factor @@ -0,0 +1,11 @@ +USING: kernel sequences prettyprint math.matrices arrays ranges math.statistics tools.test ; +IN: pwc-341 +:: ch-1 ( seq m -- n ) + seq length <iota> dup dup cartesian-product concat cartesian-product concat + [ first2 swap prefix ] map [ + [ first3 2dup < nip [ < ] dip and ] + [ seq nths differences [ m = ] all? ] bi and + ] filter length ; + +{ 2 } [ { 0 1 4 6 7 10 } 3 ch-1 ] unit-test +{ 2 } [ { 4 5 6 7 8 9 } 2 ch-1 ] unit-test diff --git a/challenge-241/razetime/factor/ch-2.factor b/challenge-241/razetime/factor/ch-2.factor new file mode 100644 index 0000000000..7e39f674aa --- /dev/null +++ b/challenge-241/razetime/factor/ch-2.factor @@ -0,0 +1,5 @@ +USING: kernel sequences math.primes.factors sorting tools.test ; +IN: pwc-341 +: ch-2 ( seq -- seq' ) [ factors length ] sort-by ; + +{ { 11 4 8 27 } } [ { 11 8 27 4 } ch-2 ] unit-test diff --git a/challenge-241/razetime/prolog/ch-1.P b/challenge-241/razetime/prolog/ch-1.P new file mode 100644 index 0000000000..5a730d7903 --- /dev/null +++ b/challenge-241/razetime/prolog/ch-1.P @@ -0,0 +1,13 @@ +:- use_module(library(lists)). +:- use_module(library(clpz)). + +soln(t(I,J,K),D,A):- + nth0(I,A,M),nth0(J,A,N),nth0(K,A,O), + I#<J,J#<K, + D#=N-M,D#=O-N. + +ch1(N,D,A):-findall(X,soln(X,D,A),S),length(S,N). + +?- ch1(A,3,[0,1,4,6,7,10]) +?- ch1(A,2,[4,5,6,7,8,9]). + diff --git a/challenge-241/razetime/prolog/ch-2.P b/challenge-241/razetime/prolog/ch-2.P new file mode 100644 index 0000000000..6d533199d3 --- /dev/null +++ b/challenge-241/razetime/prolog/ch-2.P @@ -0,0 +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,Cp,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). diff --git a/challenge-241/razetime/raku/ch-1.raku b/challenge-241/razetime/raku/ch-1.raku new file mode 100644 index 0000000000..271406ff95 --- /dev/null +++ b/challenge-241/razetime/raku/ch-1.raku @@ -0,0 +1,16 @@ +sub ch1(@n,$d) { + my $c=0; + for 0..^@n.elems -> $i { + for ($i+1)..^@n.elems -> $j { + for ($j+1)..^@n.elems -> $k { + if (@n[$j] - @n[$i] == $d && @n[$k] - @n[$j] == $d) { + $c+=1; + } + } + } + } + return $c; +} + +say ch1((0,1,4,6,7,10),3); +say ch1((4,5,6,7,8,9),2); diff --git a/challenge-241/razetime/raku/ch-2.raku b/challenge-241/razetime/raku/ch-2.raku new file mode 100644 index 0000000000..b0e30445a4 --- /dev/null +++ b/challenge-241/razetime/raku/ch-2.raku @@ -0,0 +1,15 @@ +sub ch2(@a) {return @a.sort({ + my @p=(2..*).grep({.is-prime}); + my $i=0; + my $r=0; + my $s=$_; + while $s>1 { + if $s%%@p[$i] { + $s=$s div @p[$i]; + $r+=1; + } else { $i+=1;} + } + $r; +});} + +say ch2((11,8,27,4)); |
