aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaldhar H. Vyas <jaldhar@braincells.com>2021-11-07 23:42:52 -0500
committerJaldhar H. Vyas <jaldhar@braincells.com>2021-11-07 23:42:52 -0500
commit14076f5dc7355397a711be30ea627098b3bd985a (patch)
tree71d5d96763e60449cb73e4b568445efb24063a54
parent4003e5e2bba985403f840de1e0e22362e5642c5e (diff)
downloadperlweeklychallenge-club-14076f5dc7355397a711be30ea627098b3bd985a.tar.gz
perlweeklychallenge-club-14076f5dc7355397a711be30ea627098b3bd985a.tar.bz2
perlweeklychallenge-club-14076f5dc7355397a711be30ea627098b3bd985a.zip
Challenge 137 by Jaldhar H. Vyas.
-rw-r--r--challenge-137/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-137/jaldhar-h-vyas/perl/ch-1.pl15
-rwxr-xr-xchallenge-137/jaldhar-h-vyas/perl/ch-2.pl35
-rwxr-xr-xchallenge-137/jaldhar-h-vyas/raku/ch-1.raku16
-rwxr-xr-xchallenge-137/jaldhar-h-vyas/raku/ch-2.raku26
5 files changed, 93 insertions, 0 deletions
diff --git a/challenge-137/jaldhar-h-vyas/blog.txt b/challenge-137/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..a54c57bd8d
--- /dev/null
+++ b/challenge-137/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2021/11/perl_weekly_challenge_week_137.html
diff --git a/challenge-137/jaldhar-h-vyas/perl/ch-1.pl b/challenge-137/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..55ef26ddcb
--- /dev/null
+++ b/challenge-137/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,15 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+
+sub p {
+ my ($year) = @_;
+ return (($year + int($year / 4) - int($year / 100) + int($year / 400)) % 7);
+}
+
+sub isLongYear {
+ my ($year) = @_;
+ return (p($year) == 4 || p($year - 1) == 3);
+}
+
+say join q{, }, grep { isLongYear($_); } (1900 .. 2100);
diff --git a/challenge-137/jaldhar-h-vyas/perl/ch-2.pl b/challenge-137/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..b2f25fb5d5
--- /dev/null
+++ b/challenge-137/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+
+sub usage {
+ say 'Need an integer between 10 and 1000';
+ exit 0;
+}
+
+sub lychrel {
+ my ($n) = @_;
+
+ my $i = $n;
+ for (1 .. 500) {
+ my $r = join q{}, (reverse split //, $i);
+ $i = $i + $r;
+
+ if ($i == join q{}, (reverse split //, $i)) {
+ return 0;
+ }
+
+ if ($i > 10_000_000) {
+ return 1;
+ }
+ }
+
+ return 1;
+}
+
+my $n = shift // usage;
+if ($n < 10 || $n > 1000) {
+ usage;
+}
+
+say lychrel($n);
diff --git a/challenge-137/jaldhar-h-vyas/raku/ch-1.raku b/challenge-137/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..fd9e3537f4
--- /dev/null
+++ b/challenge-137/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,16 @@
+#!/usr/bin/raku
+
+sub p(Int $year) {
+ return (($year + ($year div 4) - ($year div 100) + ($year div 400)) % 7);
+}
+
+sub isLongYear(Int $year) {
+ return p($year) == 4 || p($year - 1) == 3;
+}
+
+sub MAIN() {
+ (1900 .. 2100)
+ .grep({ isLongYear($_); })
+ .join(q{, })
+ .say;
+}
diff --git a/challenge-137/jaldhar-h-vyas/raku/ch-2.raku b/challenge-137/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..8fb34d1d0f
--- /dev/null
+++ b/challenge-137/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,26 @@
+#!/usr/bin/raku
+
+sub lychrel(Int $n) {
+
+ my $i = $n;
+ for 1 .. 500 {
+ my $r = $i.comb.reverse.join;
+ $i = $i + $r;
+
+ if $i == $i.comb.reverse.join {
+ return 0;
+ }
+
+ if $i > 10_000_000 {
+ return 1;
+ }
+ }
+
+ return 1;
+}
+
+sub MAIN(
+ Int $n where { $n >= 10 && $n <= 1000 } #= integer between 10 and 1000
+) {
+ say lychrel($n);
+} \ No newline at end of file