aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2022-04-02 13:15:01 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2022-04-02 13:15:01 +0200
commit28b922995b6c0ffacf6005a97459b5bb5270a502 (patch)
treefb7ec264d2c36504593978f22ff4b8b79e477197
parent0dac2678bdd2a6ad03dbd3b620cef60febeb3184 (diff)
downloadperlweeklychallenge-club-28b922995b6c0ffacf6005a97459b5bb5270a502.tar.gz
perlweeklychallenge-club-28b922995b6c0ffacf6005a97459b5bb5270a502.tar.bz2
perlweeklychallenge-club-28b922995b6c0ffacf6005a97459b5bb5270a502.zip
julia solution week 158-1
-rw-r--r--challenge-158/wambash/julia/ch-1.jl45
1 files changed, 45 insertions, 0 deletions
diff --git a/challenge-158/wambash/julia/ch-1.jl b/challenge-158/wambash/julia/ch-1.jl
new file mode 100644
index 0000000000..19d1159624
--- /dev/null
+++ b/challenge-158/wambash/julia/ch-1.jl
@@ -0,0 +1,45 @@
+#!/usr/bin/env julia
+using Lazy
+
+sum_of_digits_is_prime(n) = n |> digits |> sum |> Lazy.isprime
+
+additive_primes( n::Integer=100 ) = @>> begin
+ Lazy.range(2)
+ filter( Lazy.isprime )
+ filter( sum_of_digits_is_prime )
+ takewhile( x -> x ≤ n )
+end
+
+function MAIN( n )
+ additive_primes(n) .|> println
+end
+
+using Test
+
+function TEST()
+ @testset "additive primes" begin
+ @test additive_primes() == list(2, 3, 5, 7, 11, 23, 29, 41, 43, 47, 61, 67, 83, 89,)
+ @test additive_primes(12) == list(2, 3, 5, 7, 11,)
+ end
+end
+
+
+using ArgParse
+
+s = ArgParseSettings()
+
+@add_arg_table! s begin
+ "--test"
+ action = :store_true
+ "n"
+ arg_type = Int
+ default = 100
+end
+
+pa=parse_args(s)
+
+if pa["test"]
+ TEST()
+else
+ MAIN(pa["n"])
+end