diff options
| author | Jaldhar H. Vyas <jaldhar@braincells.com> | 2021-11-07 23:42:52 -0500 |
|---|---|---|
| committer | Jaldhar H. Vyas <jaldhar@braincells.com> | 2021-11-07 23:42:52 -0500 |
| commit | 14076f5dc7355397a711be30ea627098b3bd985a (patch) | |
| tree | 71d5d96763e60449cb73e4b568445efb24063a54 | |
| parent | 4003e5e2bba985403f840de1e0e22362e5642c5e (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-137/jaldhar-h-vyas/perl/ch-1.pl | 15 | ||||
| -rwxr-xr-x | challenge-137/jaldhar-h-vyas/perl/ch-2.pl | 35 | ||||
| -rwxr-xr-x | challenge-137/jaldhar-h-vyas/raku/ch-1.raku | 16 | ||||
| -rwxr-xr-x | challenge-137/jaldhar-h-vyas/raku/ch-2.raku | 26 |
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 |
