aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-03-31 18:04:17 +0100
committerGitHub <noreply@github.com>2022-03-31 18:04:17 +0100
commit6635f0e8bb2b95ec066c79f834cbc78b2f2b1e8c (patch)
tree137386bcf4a4ce5bbc72f91a73e0cbc141648509
parentc5b3b7dc0cac75fe64ae9d43df7fc0fd995b0192 (diff)
parent0dac2678bdd2a6ad03dbd3b620cef60febeb3184 (diff)
downloadperlweeklychallenge-club-6635f0e8bb2b95ec066c79f834cbc78b2f2b1e8c.tar.gz
perlweeklychallenge-club-6635f0e8bb2b95ec066c79f834cbc78b2f2b1e8c.tar.bz2
perlweeklychallenge-club-6635f0e8bb2b95ec066c79f834cbc78b2f2b1e8c.zip
Merge pull request #5865 from wambash/challenge-week-158
Challenge week 158
-rw-r--r--challenge-158/wambash/julia/ch-2.jl40
-rw-r--r--challenge-158/wambash/raku/ch-1.raku18
-rw-r--r--challenge-158/wambash/raku/ch-2.raku17
3 files changed, 75 insertions, 0 deletions
diff --git a/challenge-158/wambash/julia/ch-2.jl b/challenge-158/wambash/julia/ch-2.jl
new file mode 100644
index 0000000000..43337aae9e
--- /dev/null
+++ b/challenge-158/wambash/julia/ch-2.jl
@@ -0,0 +1,40 @@
+#!/usr/bin/env julia
+using Lazy
+
+first_series_cuban_primes(n=1000) = @>> begin
+ Lazy.range()
+ map( y -> 3y^2 + 3y+1 )
+ filter(Lazy.isprime)
+ takewhile( x -> x ≤ n )
+end
+
+function MAIN(n::Integer=1000)
+ first_series_cuban_primes(n) .|> println
+end
+
+using Test
+
+function TEST()
+ @testset "Cuban primes" begin
+ @test first_series_cuban_primes() == list(7, 19, 37, 61, 127, 271, 331, 397, 547, 631, 919.)
+ end
+end
+
+using ArgParse
+
+s = ArgParseSettings()
+
+@add_arg_table! s begin
+ "--test"
+ action = :store_true
+ "n"
+ arg_type = Int
+ default = 1000
+end
+pa=parse_args(s)
+
+if pa["test"]
+ TEST()
+else
+ MAIN(pa["n"])
+end
diff --git a/challenge-158/wambash/raku/ch-1.raku b/challenge-158/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..bcecccbadf
--- /dev/null
+++ b/challenge-158/wambash/raku/ch-1.raku
@@ -0,0 +1,18 @@
+#!/usr/bin/env raku
+
+constant @additive-primes = (
+ 2..∞
+ andthen .grep: *.is-prime
+ andthen .grep: *.comb.sum.is-prime
+);
+
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is @additive-primes.toggle(* ≤ 100), (2, 3, 5, 7, 11, 23, 29, 41, 43, 47, 61, 67, 83, 89);
+ done-testing;
+}
+
+multi MAIN ($n=1000) {
+ put @additive-primes.toggle: * ≤ $n
+}
diff --git a/challenge-158/wambash/raku/ch-2.raku b/challenge-158/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..35923c2caa
--- /dev/null
+++ b/challenge-158/wambash/raku/ch-2.raku
@@ -0,0 +1,17 @@
+#!/usr/bin/env raku
+
+constant @first-series-cuban-primes = (
+ 1..∞
+ andthen .map: -> \x { 3*x² + 3*x +1}\
+ andthen .grep: *.is-prime
+);
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is @first-series-cuban-primes.toggle(* ≤ 1000), (7, 19, 37, 61, 127, 271, 331, 397, 547, 631, 919,);
+ done-testing;
+}
+
+multi MAIN ($n=1000) {
+ put @first-series-cuban-primes.toggle: * ≤ $n
+}