aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-06-06 00:12:55 +0100
committerGitHub <noreply@github.com>2022-06-06 00:12:55 +0100
commit3af32d38f035d231e902d2d2b4683c9e19c5be91 (patch)
treec56386ecbbe933ad4209eb59b8bc130f27c3f0cd
parent7cea2a8b3bcd8fc0f4b20c09fff5007fcf90ed95 (diff)
parentfc3110bcee6d1c983f4f7458b9cc82710f000ee8 (diff)
downloadperlweeklychallenge-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.txt1
-rwxr-xr-xchallenge-167/arne-sommer/raku/ch-1.raku28
-rwxr-xr-xchallenge-167/arne-sommer/raku/ch-2.raku7
-rwxr-xr-xchallenge-167/arne-sommer/raku/circular-prime28
-rwxr-xr-xchallenge-167/arne-sommer/raku/circular-prime-stupid3
-rwxr-xr-xchallenge-167/arne-sommer/raku/gamma-function7
-rwxr-xr-xchallenge-167/arne-sommer/raku/gamma-function-int7
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;