aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2019-08-29 15:28:31 +0100
committerGitHub <noreply@github.com>2019-08-29 15:28:31 +0100
commit19ae721a2b459b235d9d710e78534c59d7ba7549 (patch)
tree413db39069379cbe3bd642d7e958885ef0899062
parent21c49e199da142b11332978e6c1f433ba79e85c7 (diff)
parent111c23891eef34460df5ca3238655fe0afe2a28d (diff)
downloadperlweeklychallenge-club-19ae721a2b459b235d9d710e78534c59d7ba7549.tar.gz
perlweeklychallenge-club-19ae721a2b459b235d9d710e78534c59d7ba7549.tar.bz2
perlweeklychallenge-club-19ae721a2b459b235d9d710e78534c59d7ba7549.zip
Merge pull request #570 from drclaw1394/master
drclaw/ruben solutions to w23 ch1 and ch2. p5 and p6
-rw-r--r--challenge-023/ruben-westerberg/README12
-rwxr-xr-xchallenge-023/ruben-westerberg/perl5/ch-1.pl15
-rwxr-xr-xchallenge-023/ruben-westerberg/perl5/ch-2.pl37
-rwxr-xr-xchallenge-023/ruben-westerberg/perl6/ch-1.p67
-rwxr-xr-xchallenge-023/ruben-westerberg/perl6/ch-2.p622
5 files changed, 91 insertions, 2 deletions
diff --git a/challenge-023/ruben-westerberg/README b/challenge-023/ruben-westerberg/README
index 26a2690833..fa2d20850a 100644
--- a/challenge-023/ruben-westerberg/README
+++ b/challenge-023/ruben-westerberg/README
@@ -2,9 +2,17 @@ Solution by Ruben Westerberg
ch-1.pl and ch-1.p6
===
-Run the program to calculate the first ten sexy prime pairs
+Run the program to calculate the forward difference of a number sequence entered on the command line.
+If no order is specified an order of 1 is used and if no sequence is specified a example sequence is used
+
+ ch-1.pl usage:
+ ./ch-1.pl -o 2 -- 1 3 6 9
+ ch-2.p6 usage:
+ ./ch-1.p6 --order=2 1 3 6 9
ch-2.pl and ch-2.p6
===
-Run the program with a command line argument to demonstrate the LZW encoding. With no argument, a demonstration string is used
+Run the program to display the prime decomposition of the number intered on the command line.
+If no number is specifed the demo value of 228 is decomposed.
+
diff --git a/challenge-023/ruben-westerberg/perl5/ch-1.pl b/challenge-023/ruben-westerberg/perl5/ch-1.pl
new file mode 100755
index 0000000000..9751a5ac90
--- /dev/null
+++ b/challenge-023/ruben-westerberg/perl5/ch-1.pl
@@ -0,0 +1,15 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use List::Util qw<reduce>;
+use Getopt::Long;
+use v5.26;
+my $order=1;
+
+GetOptions("order=i" => \$order);
+my @values=@ARGV?@ARGV:(5, 9, 2, 8, 1, 6);
+
+for (0..$order-1) {
+ @values=map( { reduce {$a-$b} @values[$_, $_-1];} 1..@values-1);
+}
+print join " ", @values;
diff --git a/challenge-023/ruben-westerberg/perl5/ch-2.pl b/challenge-023/ruben-westerberg/perl5/ch-2.pl
new file mode 100755
index 0000000000..50e9cc2d98
--- /dev/null
+++ b/challenge-023/ruben-westerberg/perl5/ch-2.pl
@@ -0,0 +1,37 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use v5.26;
+
+my $i=0;
+my @primes;
+my @factors;
+my $value=my $number=$ARGV[0]//228;
+while (1) {
+ push(@primes, nextPrime()) if $i >= @primes;
+ last if $primes[$i]>$value;
+ if ($value%$primes[$i]==0) {
+ $value/=$primes[$i];
+ push @factors, $primes[$i];
+ $i=0;
+ }
+ else {
+ $i++;
+ }
+}
+print "Prime decomposition of $number: ",join " ", @factors if @factors >1;
+print "No decomposition for $number\n" if @factors ==1;
+sub nextPrime {
+ state $t=1;
+ while (1) {
+
+ $t++;
+ my $sum=0;
+ for (1..(int $t/2)) {
+ $sum++ if $t % $_ == 0;
+ last if $sum >1;
+ }
+ last if $sum==1;
+ }
+ $t;
+}
diff --git a/challenge-023/ruben-westerberg/perl6/ch-1.p6 b/challenge-023/ruben-westerberg/perl6/ch-1.p6
new file mode 100755
index 0000000000..19dd7c2b31
--- /dev/null
+++ b/challenge-023/ruben-westerberg/perl6/ch-1.p6
@@ -0,0 +1,7 @@
+#!/usr/bin/env perl6
+#
+sub MAIN(:$order=1,*@values){
+ @values=(5, 9, 2, 8, 1, 6 ) if !@values;
+ @values= map( { [-] @values[$_,$_-1]}, @values.keys[1..*-1]) for ^$order ;
+ put @values;
+}
diff --git a/challenge-023/ruben-westerberg/perl6/ch-2.p6 b/challenge-023/ruben-westerberg/perl6/ch-2.p6
new file mode 100755
index 0000000000..3753c92e07
--- /dev/null
+++ b/challenge-023/ruben-westerberg/perl6/ch-2.p6
@@ -0,0 +1,22 @@
+#!/usr/bin/env perl6
+
+
+sub MAIN(*@a) {
+ my $primes=(0..*).grep({.is-prime}).cache;
+ my @factors;
+ my $i=0;
+ my $value=my $number=@a[0]//228;
+ loop {
+ if $value%%$primes[$i] {
+ $value/=$primes[$i];
+ @factors.push: $primes[$i];
+ $i=0;
+ }
+ else {
+ $i++;
+ }
+ last if $primes[$i]>$value;
+ }
+ put "Prime decomposition of $number: @factors[]" if @factors >1;
+ put "No decomposition for $number" if @factors ==1;
+}