aboutsummaryrefslogtreecommitdiff
path: root/challenge-148
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-01-23 22:48:09 +0000
committerGitHub <noreply@github.com>2022-01-23 22:48:09 +0000
commite944735f6b9b8f53edfc4e92350f6f9348dc07d1 (patch)
treef0d125b23d55dc4fcf68fa72acbd0dde6f1aab62 /challenge-148
parent7b2a4c167050e35bc8b823008b854da55dc5c393 (diff)
parentf1fe4dbfb8c32fedf0fcb60ad00e94295d27696b (diff)
downloadperlweeklychallenge-club-e944735f6b9b8f53edfc4e92350f6f9348dc07d1.tar.gz
perlweeklychallenge-club-e944735f6b9b8f53edfc4e92350f6f9348dc07d1.tar.bz2
perlweeklychallenge-club-e944735f6b9b8f53edfc4e92350f6f9348dc07d1.zip
Merge pull request #5555 from adamcrussell/challenge-148
initial commit
Diffstat (limited to 'challenge-148')
-rw-r--r--challenge-148/adam-russell/perl/ch-1.pl36
-rw-r--r--challenge-148/adam-russell/perl/ch-2.pl24
2 files changed, 60 insertions, 0 deletions
diff --git a/challenge-148/adam-russell/perl/ch-1.pl b/challenge-148/adam-russell/perl/ch-1.pl
new file mode 100644
index 0000000000..0dcc08feb2
--- /dev/null
+++ b/challenge-148/adam-russell/perl/ch-1.pl
@@ -0,0 +1,36 @@
+use strict;
+use warnings;
+##
+# Write a script to generate all Eban Numbers <= 100.
+##
+use boolean;
+
+sub eban{
+ my($n) = @_;
+ return false if $n =~ m/^1.*/;
+ return false if $n =~ m/.*1$/;
+ return false if $n =~ m/.*3$/;
+ return false if $n =~ m/.*5$/;
+ return false if $n =~ m/.*7$/;
+ return false if $n =~ m/.*8$/;
+ return false if $n =~ m/.*9$/;
+ return false if $n =~ m/2[0-9]$/;
+ return false if $n =~ m/7[0-9]$/;
+ return false if $n =~ m/8[0-9]$/;
+ return false if $n =~ m/9[0-9]$/;
+ return true;
+}
+
+sub eban_under_100{
+ my @eban;
+ my $x = 1;
+ do{
+ push @eban, $x if eban($x);
+ $x++;
+ }while($x <= 100);
+ return @eban;
+}
+
+MAIN:{
+ print join(", ", eban_under_100()) . "\n";
+} \ No newline at end of file
diff --git a/challenge-148/adam-russell/perl/ch-2.pl b/challenge-148/adam-russell/perl/ch-2.pl
new file mode 100644
index 0000000000..c169679174
--- /dev/null
+++ b/challenge-148/adam-russell/perl/ch-2.pl
@@ -0,0 +1,24 @@
+use strict;
+use warnings;
+##
+# Write a script to generate first 5 Cardano Triplets.
+##
+use POSIX;
+use Algorithm::Combinatorics q/tuples/;
+
+sub first_five_cardano_triplets{
+ my @triplets;
+ for my $tuple (tuples([0..100], 3)){
+ my($s, $t, $u) = @{$tuple};
+ if(8 * pow($s, 3) + 15 * pow($s, 2) + 6 * $s - 27 * pow($t, 2) * $u == 1){
+ push @triplets, [$s, $t, $u];
+ }
+ return @triplets if @triplets == 5;
+ }
+}
+
+MAIN:{
+ for my $triplet (first_five_cardano_triplets()){
+ print join(", ", @{$triplet}) . "\n";
+ }
+} \ No newline at end of file