aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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