diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-08-29 15:28:31 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-08-29 15:28:31 +0100 |
| commit | 19ae721a2b459b235d9d710e78534c59d7ba7549 (patch) | |
| tree | 413db39069379cbe3bd642d7e958885ef0899062 | |
| parent | 21c49e199da142b11332978e6c1f433ba79e85c7 (diff) | |
| parent | 111c23891eef34460df5ca3238655fe0afe2a28d (diff) | |
| download | perlweeklychallenge-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/README | 12 | ||||
| -rwxr-xr-x | challenge-023/ruben-westerberg/perl5/ch-1.pl | 15 | ||||
| -rwxr-xr-x | challenge-023/ruben-westerberg/perl5/ch-2.pl | 37 | ||||
| -rwxr-xr-x | challenge-023/ruben-westerberg/perl6/ch-1.p6 | 7 | ||||
| -rwxr-xr-x | challenge-023/ruben-westerberg/perl6/ch-2.p6 | 22 |
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; +} |
