diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-09-01 22:59:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-09-01 22:59:20 +0100 |
| commit | 65728cdbf6940af0a126c1dca51cbfb4136fbbfb (patch) | |
| tree | c19e505f77ac73bec9a407e54f781972ea4cd3dc /challenge-023 | |
| parent | c6b9bb6d65a345cb90a1f055d7bd42f9511d4e92 (diff) | |
| parent | 21cb1d0b225e6dc81a30d810c3f4063b7570bd1a (diff) | |
| download | perlweeklychallenge-club-65728cdbf6940af0a126c1dca51cbfb4136fbbfb.tar.gz perlweeklychallenge-club-65728cdbf6940af0a126c1dca51cbfb4136fbbfb.tar.bz2 perlweeklychallenge-club-65728cdbf6940af0a126c1dca51cbfb4136fbbfb.zip | |
Merge pull request #587 from adamcrussell/challenge-023
Challenge 023
Diffstat (limited to 'challenge-023')
| -rw-r--r-- | challenge-023/adam-russell/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-023/adam-russell/perl5/ch-1.pl | 29 | ||||
| -rw-r--r-- | challenge-023/adam-russell/perl5/ch-2.pl | 21 |
3 files changed, 51 insertions, 0 deletions
diff --git a/challenge-023/adam-russell/blog.txt b/challenge-023/adam-russell/blog.txt new file mode 100644 index 0000000000..be945e653a --- /dev/null +++ b/challenge-023/adam-russell/blog.txt @@ -0,0 +1 @@ +https://adamcrussell.livejournal.com/7762.html diff --git a/challenge-023/adam-russell/perl5/ch-1.pl b/challenge-023/adam-russell/perl5/ch-1.pl new file mode 100644 index 0000000000..77e4f5ffaf --- /dev/null +++ b/challenge-023/adam-russell/perl5/ch-1.pl @@ -0,0 +1,29 @@ +use strict; +use warnings; +## +# Create a script that prints nth order forward difference series. +## +sub forward_difference{ + my($order, $numbers) = @_; + if(!$order || @{$numbers} == 1){ + return $numbers; + } + else{ + my $reduced = []; + my $previous = $numbers->[0]; + for(my $i = 1; $i < @{$numbers}; $i++){ + push @{$reduced}, $numbers->[$i] - $previous; + $previous = $numbers->[$i]; + } + forward_difference($order - 1, $reduced); + } + +} + + +MAIN:{ + my $order = $ARGV[0]; + my @numbers = @ARGV[1 .. (@ARGV - 1)]; + my $reduced = forward_difference($order, \@numbers); + print join(", ", @{$reduced}) . "\n"; +} diff --git a/challenge-023/adam-russell/perl5/ch-2.pl b/challenge-023/adam-russell/perl5/ch-2.pl new file mode 100644 index 0000000000..75c5561781 --- /dev/null +++ b/challenge-023/adam-russell/perl5/ch-2.pl @@ -0,0 +1,21 @@ +use strict; +use warnings; +## +# Create a script that prints Prime Decomposition of a given number. +## +sub prime_factor{ + my $x = shift(@_); + my @factors; + for (my $y = 2; $y <= $x; $y++){ + next if $x % $y; + $x /= $y; + push @factors, $y; + redo; + } + return @factors; +} + +MAIN:{ + my $n = $ARGV[0]; + print join(", ", prime_factor($n)) . "\n"; +} |
