aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlavio Poletti <flavio@polettix.it>2022-06-24 00:46:08 +0200
committerFlavio Poletti <flavio@polettix.it>2022-06-24 00:46:08 +0200
commit6cbbb1fa2553fc0b262554e57bf4713d0f680516 (patch)
tree12bb915023e197cead5bf871b6ea5bb123decb70
parent5fd07d5e2157af1e42411b7e500663a776b6a5dc (diff)
downloadperlweeklychallenge-club-6cbbb1fa2553fc0b262554e57bf4713d0f680516.tar.gz
perlweeklychallenge-club-6cbbb1fa2553fc0b262554e57bf4713d0f680516.tar.bz2
perlweeklychallenge-club-6cbbb1fa2553fc0b262554e57bf4713d0f680516.zip
Add polettix's solution to challenge-170
-rw-r--r--challenge-170/polettix/blog.txt1
-rw-r--r--challenge-170/polettix/blog1.txt1
-rw-r--r--challenge-170/polettix/perl/ch-1.pl15
-rw-r--r--challenge-170/polettix/perl/ch-2.pl12
-rw-r--r--challenge-170/polettix/perl/cpanfile2
-rw-r--r--challenge-170/polettix/perl/cpanfile.snapshot47
-rw-r--r--challenge-170/polettix/raku/ch-1.raku5
-rw-r--r--challenge-170/polettix/raku/ch-2.raku14
8 files changed, 97 insertions, 0 deletions
diff --git a/challenge-170/polettix/blog.txt b/challenge-170/polettix/blog.txt
new file mode 100644
index 0000000000..a61ee5d50d
--- /dev/null
+++ b/challenge-170/polettix/blog.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2022/06/22/primorial-numbers/
diff --git a/challenge-170/polettix/blog1.txt b/challenge-170/polettix/blog1.txt
new file mode 100644
index 0000000000..66f42053de
--- /dev/null
+++ b/challenge-170/polettix/blog1.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2022/06/23/kronecker-product/
diff --git a/challenge-170/polettix/perl/ch-1.pl b/challenge-170/polettix/perl/ch-1.pl
new file mode 100644
index 0000000000..d0a216094e
--- /dev/null
+++ b/challenge-170/polettix/perl/ch-1.pl
@@ -0,0 +1,15 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+
+use ntheory 'next_prime';
+
+my $it = primorial_it();
+say $it->() for 1 .. shift || 10;
+
+sub primorial_it ($n = 1, $p = 1) {
+ # sub { (($p, $n) = ($p * $n, next_prime($n)))[0] };
+ sub { ($p, $n) = ($p * $n, next_prime($n)); $p };
+}
diff --git a/challenge-170/polettix/perl/ch-2.pl b/challenge-170/polettix/perl/ch-2.pl
new file mode 100644
index 0000000000..cac2e4ae8c
--- /dev/null
+++ b/challenge-170/polettix/perl/ch-2.pl
@@ -0,0 +1,12 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+
+use Math::Matrix;
+
+my $A = Math::Matrix->new([1, 2], [3, 4]);
+my $B = Math::Matrix->new([5, 6], [7, 8]);
+my $K = $A->kron($B);
+$K->print("K\n");
diff --git a/challenge-170/polettix/perl/cpanfile b/challenge-170/polettix/perl/cpanfile
new file mode 100644
index 0000000000..839d945912
--- /dev/null
+++ b/challenge-170/polettix/perl/cpanfile
@@ -0,0 +1,2 @@
+requires 'ntheory';
+requires 'Math::Matrix';
diff --git a/challenge-170/polettix/perl/cpanfile.snapshot b/challenge-170/polettix/perl/cpanfile.snapshot
new file mode 100644
index 0000000000..de1b13e9e6
--- /dev/null
+++ b/challenge-170/polettix/perl/cpanfile.snapshot
@@ -0,0 +1,47 @@
+# carton snapshot format: version 1.0
+DISTRIBUTIONS
+ Math-Matrix-0.94
+ pathname: P/PJ/PJACKLAM/Math-Matrix-0.94.tar.gz
+ provides:
+ Math::Matrix 0.94
+ requirements:
+ Carp 0
+ ExtUtils::MakeMaker 6.58
+ Math::Trig 1.06
+ Scalar::Util 1
+ Math-Prime-Util-0.73
+ pathname: D/DA/DANAJ/Math-Prime-Util-0.73.tar.gz
+ provides:
+ Math::Prime::Util 0.73
+ Math::Prime::Util::ChaCha 0.73
+ Math::Prime::Util::Entropy 0.73
+ Math::Prime::Util::MemFree 0.73
+ Math::Prime::Util::PP 0.73
+ Math::Prime::Util::PrimeArray 0.73
+ Math::Prime::Util::PrimeIterator 0.73
+ ntheory 0.73
+ requirements:
+ Carp 0
+ Config 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ Math::BigFloat 1.59
+ Math::BigInt 1.88
+ Math::Prime::Util::GMP 0.50
+ Tie::Array 0
+ XSLoader 0.01
+ base 0
+ constant 0
+ perl 5.006002
+ Math-Prime-Util-GMP-0.52
+ pathname: D/DA/DANAJ/Math-Prime-Util-GMP-0.52.tar.gz
+ provides:
+ Math::Prime::Util::GMP 0.52
+ requirements:
+ Carp 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ Fcntl 0
+ XSLoader 0.01
+ base 0
+ perl 5.006002
diff --git a/challenge-170/polettix/raku/ch-1.raku b/challenge-170/polettix/raku/ch-1.raku
new file mode 100644
index 0000000000..40fd20e825
--- /dev/null
+++ b/challenge-170/polettix/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#!/usr/bin/env raku
+use v6;
+sub MAIN (Int:D $n where * > 0 = 10) {
+ .put for (1 .. *).grep({$_ == 1 || .is-prime}).produce(&[*]).[^$n];
+}
diff --git a/challenge-170/polettix/raku/ch-2.raku b/challenge-170/polettix/raku/ch-2.raku
new file mode 100644
index 0000000000..1e7d0c1559
--- /dev/null
+++ b/challenge-170/polettix/raku/ch-2.raku
@@ -0,0 +1,14 @@
+#!/usr/bin/env raku
+use v6;
+sub MAIN {
+ .say for kronecker-product([ <1 2>, <3 4> ],
+ [ <5 6>, <7 8> ]);
+}
+
+sub kronecker-product (@a, @b) {
+ (@a X @b).map(->(@A, @B) { @A X* @B });
+}
+
+sub kronecker_product (@a, @b) {
+ (@a X @b).map: { .[0].list X* .[1].list };
+}