diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2022-04-02 13:15:01 +0200 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2022-04-02 13:15:01 +0200 |
| commit | 28b922995b6c0ffacf6005a97459b5bb5270a502 (patch) | |
| tree | fb7ec264d2c36504593978f22ff4b8b79e477197 | |
| parent | 0dac2678bdd2a6ad03dbd3b620cef60febeb3184 (diff) | |
| download | perlweeklychallenge-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.jl | 45 |
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 |
