diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-06-06 00:12:55 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-06 00:12:55 +0100 |
| commit | 3af32d38f035d231e902d2d2b4683c9e19c5be91 (patch) | |
| tree | c56386ecbbe933ad4209eb59b8bc130f27c3f0cd | |
| parent | 7cea2a8b3bcd8fc0f4b20c09fff5007fcf90ed95 (diff) | |
| parent | fc3110bcee6d1c983f4f7458b9cc82710f000ee8 (diff) | |
| download | perlweeklychallenge-club-3af32d38f035d231e902d2d2b4683c9e19c5be91.tar.gz perlweeklychallenge-club-3af32d38f035d231e902d2d2b4683c9e19c5be91.tar.bz2 perlweeklychallenge-club-3af32d38f035d231e902d2d2b4683c9e19c5be91.zip | |
Merge pull request #6209 from arnesom/branch-for-challenge-167
Arne Sommer
| -rw-r--r-- | challenge-167/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-167/arne-sommer/raku/ch-1.raku | 28 | ||||
| -rwxr-xr-x | challenge-167/arne-sommer/raku/ch-2.raku | 7 | ||||
| -rwxr-xr-x | challenge-167/arne-sommer/raku/circular-prime | 28 | ||||
| -rwxr-xr-x | challenge-167/arne-sommer/raku/circular-prime-stupid | 3 | ||||
| -rwxr-xr-x | challenge-167/arne-sommer/raku/gamma-function | 7 | ||||
| -rwxr-xr-x | challenge-167/arne-sommer/raku/gamma-function-int | 7 |
7 files changed, 81 insertions, 0 deletions
diff --git a/challenge-167/arne-sommer/blog.txt b/challenge-167/arne-sommer/blog.txt new file mode 100644 index 0000000000..eadd654c4e --- /dev/null +++ b/challenge-167/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/primarily-functional.html diff --git a/challenge-167/arne-sommer/raku/ch-1.raku b/challenge-167/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..22fd9ba03b --- /dev/null +++ b/challenge-167/arne-sommer/raku/ch-1.raku @@ -0,0 +1,28 @@ +#! /usr/bin/env raku + +unit sub MAIN (Int $c where $c > 1 = 10); + +my $cp := (100 .. *).grep({ is-circular($_) }); + +sub is-circular ($number) +{ + state %seen; + + return if %seen{$number}; %seen{$number} = True; + + return unless $number ~~ /^<[1379]>+$/; + return unless $number.is-prime; + + my @digits = $number.comb; + + for (1 .. @digits.elems -1) -> $skew + { + my $rotated = @digits.rotate($skew).join; + return if %seen{$rotated}; + return unless $rotated.is-prime; + } + + return True; +} + +say $cp[^$c].join(", ");
\ No newline at end of file diff --git a/challenge-167/arne-sommer/raku/ch-2.raku b/challenge-167/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..a632486a8e --- /dev/null +++ b/challenge-167/arne-sommer/raku/ch-2.raku @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +use Math::Libgsl::Function :ALL; + +unit sub MAIN (Int :u(:$upto) where $upto > 0 = 10); + +say "$_ -> { gamma($_).Int }" for 1 .. $upto; diff --git a/challenge-167/arne-sommer/raku/circular-prime b/challenge-167/arne-sommer/raku/circular-prime new file mode 100755 index 0000000000..22fd9ba03b --- /dev/null +++ b/challenge-167/arne-sommer/raku/circular-prime @@ -0,0 +1,28 @@ +#! /usr/bin/env raku + +unit sub MAIN (Int $c where $c > 1 = 10); + +my $cp := (100 .. *).grep({ is-circular($_) }); + +sub is-circular ($number) +{ + state %seen; + + return if %seen{$number}; %seen{$number} = True; + + return unless $number ~~ /^<[1379]>+$/; + return unless $number.is-prime; + + my @digits = $number.comb; + + for (1 .. @digits.elems -1) -> $skew + { + my $rotated = @digits.rotate($skew).join; + return if %seen{$rotated}; + return unless $rotated.is-prime; + } + + return True; +} + +say $cp[^$c].join(", ");
\ No newline at end of file diff --git a/challenge-167/arne-sommer/raku/circular-prime-stupid b/challenge-167/arne-sommer/raku/circular-prime-stupid new file mode 100755 index 0000000000..469bf9d164 --- /dev/null +++ b/challenge-167/arne-sommer/raku/circular-prime-stupid @@ -0,0 +1,3 @@ +#! /usr/bin/env raku + +say "113, 197, 199, 337, 1193, 3779, 11939, 19937, 193939, 199933"; diff --git a/challenge-167/arne-sommer/raku/gamma-function b/challenge-167/arne-sommer/raku/gamma-function new file mode 100755 index 0000000000..8751524d9d --- /dev/null +++ b/challenge-167/arne-sommer/raku/gamma-function @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +use Math::Libgsl::Function :ALL; + +unit sub MAIN (Int :u(:$upto) where $upto > 0 = 10); + +say "$_ -> { gamma($_) }" for 1 .. $upto; diff --git a/challenge-167/arne-sommer/raku/gamma-function-int b/challenge-167/arne-sommer/raku/gamma-function-int new file mode 100755 index 0000000000..a632486a8e --- /dev/null +++ b/challenge-167/arne-sommer/raku/gamma-function-int @@ -0,0 +1,7 @@ +#! /usr/bin/env raku + +use Math::Libgsl::Function :ALL; + +unit sub MAIN (Int :u(:$upto) where $upto > 0 = 10); + +say "$_ -> { gamma($_).Int }" for 1 .. $upto; |
