From 14076f5dc7355397a711be30ea627098b3bd985a Mon Sep 17 00:00:00 2001 From: "Jaldhar H. Vyas" Date: Sun, 7 Nov 2021 23:42:52 -0500 Subject: Challenge 137 by Jaldhar H. Vyas. --- challenge-137/jaldhar-h-vyas/blog.txt | 1 + challenge-137/jaldhar-h-vyas/perl/ch-1.pl | 15 +++++++++++++ challenge-137/jaldhar-h-vyas/perl/ch-2.pl | 35 +++++++++++++++++++++++++++++ challenge-137/jaldhar-h-vyas/raku/ch-1.raku | 16 +++++++++++++ challenge-137/jaldhar-h-vyas/raku/ch-2.raku | 26 +++++++++++++++++++++ 5 files changed, 93 insertions(+) create mode 100644 challenge-137/jaldhar-h-vyas/blog.txt create mode 100755 challenge-137/jaldhar-h-vyas/perl/ch-1.pl create mode 100755 challenge-137/jaldhar-h-vyas/perl/ch-2.pl create mode 100755 challenge-137/jaldhar-h-vyas/raku/ch-1.raku create mode 100755 challenge-137/jaldhar-h-vyas/raku/ch-2.raku 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 -- cgit