aboutsummaryrefslogtreecommitdiff
path: root/challenge-137
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-11-07 18:06:02 +0000
committerGitHub <noreply@github.com>2021-11-07 18:06:02 +0000
commita7ff5d878f103a6f4f5f3a2109e38c12a39af76e (patch)
tree8328ad957ddf4b0a7a22df564efafdfb5452dece /challenge-137
parent1fc81d22bdd0c68dd2bd361122a739864272222b (diff)
parent6dc2a9b7a6c0e46e59e0341b4d2f2a0ca81c3a5e (diff)
downloadperlweeklychallenge-club-a7ff5d878f103a6f4f5f3a2109e38c12a39af76e.tar.gz
perlweeklychallenge-club-a7ff5d878f103a6f4f5f3a2109e38c12a39af76e.tar.bz2
perlweeklychallenge-club-a7ff5d878f103a6f4f5f3a2109e38c12a39af76e.zip
Merge pull request #5174 from E7-87-83/newt
Challenge 137
Diffstat (limited to 'challenge-137')
-rw-r--r--challenge-137/cheok-yin-fung/java/LongYear.java42
-rw-r--r--challenge-137/cheok-yin-fung/julia/ch-1.jl19
-rw-r--r--challenge-137/cheok-yin-fung/perl/ch-1.pl35
-rw-r--r--challenge-137/cheok-yin-fung/perl/ch-2.pl33
4 files changed, 129 insertions, 0 deletions
diff --git a/challenge-137/cheok-yin-fung/java/LongYear.java b/challenge-137/cheok-yin-fung/java/LongYear.java
new file mode 100644
index 0000000000..b49f69355c
--- /dev/null
+++ b/challenge-137/cheok-yin-fung/java/LongYear.java
@@ -0,0 +1,42 @@
+// The Weekly Challenge - 137
+// Task 1 Long Year
+// Usage: java LongYear
+
+import java.time.LocalDate;
+import java.time.YearMonth;
+
+public class LongYear
+{
+ public static void main(String[] args)
+ {
+ int c = 0;
+ for(int y = 1900; y <= 2100; y++)
+ {
+ LocalDate fourthJan = LocalDate.of(y, 1, 4);
+ int a = gdow( (fourthJan.getDayOfWeek()).toString() );
+ LocalDate YearLastDay = LocalDate.of(y, 12, 31);
+ int b = gdow( (YearLastDay.getDayOfWeek()).toString() );
+ if (a >= 4 && b >= 4)
+ {
+ System.out.println(y);
+ c++;
+ }
+ }
+ System.out.println("Number of Long Years: " + c);
+ }
+
+ public static int gdow(String a)
+ {
+ switch(a)
+ {
+ case "MONDAY": return 1;
+ case "TUESDAY": return 2;
+ case "WEDNESDAY": return 3;
+ case "THURSDAY": return 4;
+ case "FRIDAY": return 5;
+ case "SATURDAY": return 6;
+ case "SUNDAY": return 7;
+ }
+ return 0;
+ }
+}
diff --git a/challenge-137/cheok-yin-fung/julia/ch-1.jl b/challenge-137/cheok-yin-fung/julia/ch-1.jl
new file mode 100644
index 0000000000..f4c3349c20
--- /dev/null
+++ b/challenge-137/cheok-yin-fung/julia/ch-1.jl
@@ -0,0 +1,19 @@
+# The Weekly Challenge Week 137
+# Task 1 Long Year
+# Usage: include("ch-1.jl")
+
+using Dates
+
+t(y) = Date(y, 1, 4)
+e(y) = Date(y, 12, 31)
+
+global c = 0;
+
+for y = 1900:2100
+ if Dates.week(e(y)) - Dates.week(t(y)) == 52
+ println(y)
+ global c = c+1
+ end
+end
+
+println("Number of Long Years: " , c)
diff --git a/challenge-137/cheok-yin-fung/perl/ch-1.pl b/challenge-137/cheok-yin-fung/perl/ch-1.pl
new file mode 100644
index 0000000000..7324e71726
--- /dev/null
+++ b/challenge-137/cheok-yin-fung/perl/ch-1.pl
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+# The Weekly Challenge 137
+# Task 1 Long Year
+# Usage: ch-1.pl
+use v5.12.0;
+use warnings;
+use Time::Local qw 'timegm_nocheck';
+
+my $c = 0;
+for my $y (1900..2100) {
+ my %wday = (
+ "Mon" => 1,
+ "Tue" => 2,
+ "Wed" => 3,
+ "Thu" => 4,
+ "Fri" => 5,
+ "Sat" => 6,
+ "Sun" => 7,
+ );
+
+ my $fourthJan = localtime timegm_nocheck 0, 0, 0, 4, 0, $y;
+
+ my $a = $wday{(split " ", $fourthJan)[0]};
+
+ my $yearLastDay = localtime timegm_nocheck 0, 0, 0, 31, 11, $y;
+
+ my $b = $wday{(split " ", $yearLastDay)[0]};
+
+ if ($a >= 4 && $b >= 4) {
+ say $y;
+ $c++;
+ }
+}
+
+say "Number of Long Years: $c";
diff --git a/challenge-137/cheok-yin-fung/perl/ch-2.pl b/challenge-137/cheok-yin-fung/perl/ch-2.pl
new file mode 100644
index 0000000000..91d6d9bf66
--- /dev/null
+++ b/challenge-137/cheok-yin-fung/perl/ch-2.pl
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+# The Weekly Challenge 137
+# Task 2 Lychrel Number
+# Usage: $ ch-2.pl $n
+use v5.12.0;
+use warnings;
+use Test::More tests => 5;
+
+say lych($ARGV[0]) if defined($ARGV[0]);
+
+
+
+sub lych {
+ my $itor = 0;
+ my $num = $_[0];
+
+ while ( (reverse $num) ne $num
+ && $itor < 500
+ && $num < 10_000_000
+ ) {
+ $num = $num + reverse $num;
+ }
+
+ return( ((reverse $num) eq $num )? 0 : 1 );
+}
+
+
+
+ok lych(56) == 0, "Example 1";
+ok lych(57) == 0, "Example 2";
+ok lych(59) == 0, "Example 3";
+ok lych(1001) == 0, "itself palindrome";
+ok lych(196) == 1, "famous 196 undetermined";