aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-009/feng-chang/README1
-rwxr-xr-xchallenge-009/feng-chang/perl5/ch-1.pl16
-rwxr-xr-xchallenge-009/feng-chang/perl6/ch-1-one-liner.p64
-rwxr-xr-xchallenge-009/feng-chang/perl6/ch-1.p68
-rw-r--r--challenge-013/feng-chang/README1
-rwxr-xr-xchallenge-013/feng-chang/perl6/ch-1.p613
6 files changed, 43 insertions, 0 deletions
diff --git a/challenge-009/feng-chang/README b/challenge-009/feng-chang/README
new file mode 100644
index 0000000000..74e56de3ed
--- /dev/null
+++ b/challenge-009/feng-chang/README
@@ -0,0 +1 @@
+Solutions by Feng Chang.
diff --git a/challenge-009/feng-chang/perl5/ch-1.pl b/challenge-009/feng-chang/perl5/ch-1.pl
new file mode 100755
index 0000000000..a883e28946
--- /dev/null
+++ b/challenge-009/feng-chang/perl5/ch-1.pl
@@ -0,0 +1,16 @@
+#!/bin/env perl
+
+use Modern::Perl;
+use List::Uniq ':all';
+
+my $n = 101;
+my $n2;
+
+while (1) {
+ $n2 = $n * $n;
+ last if @{ uniq sort split(//, $n2) } >= 5;
+
+ ++$n;
+}
+
+say "$n2 = $n * $n";
diff --git a/challenge-009/feng-chang/perl6/ch-1-one-liner.p6 b/challenge-009/feng-chang/perl6/ch-1-one-liner.p6
new file mode 100755
index 0000000000..7699bd89c8
--- /dev/null
+++ b/challenge-009/feng-chang/perl6/ch-1-one-liner.p6
@@ -0,0 +1,4 @@
+#!/bin/env perl6
+
+my $n = (101 ... *).map({ $_ if ($_ * $_).comb.unique.elems >= 5 }).[0];
+say $n * $n, " = $n * $n";
diff --git a/challenge-009/feng-chang/perl6/ch-1.p6 b/challenge-009/feng-chang/perl6/ch-1.p6
new file mode 100755
index 0000000000..1039d77b3d
--- /dev/null
+++ b/challenge-009/feng-chang/perl6/ch-1.p6
@@ -0,0 +1,8 @@
+#!/bin/env perl6
+
+for (101 ... *) -> $n {
+ my int $n2 = $n * $n;
+ last if $n2.comb.unique.elems >= 5;
+
+ LAST { say "$n2 = $n * $n" }
+}
diff --git a/challenge-013/feng-chang/README b/challenge-013/feng-chang/README
new file mode 100644
index 0000000000..74e56de3ed
--- /dev/null
+++ b/challenge-013/feng-chang/README
@@ -0,0 +1 @@
+Solutions by Feng Chang.
diff --git a/challenge-013/feng-chang/perl6/ch-1.p6 b/challenge-013/feng-chang/perl6/ch-1.p6
new file mode 100755
index 0000000000..51e3da63df
--- /dev/null
+++ b/challenge-013/feng-chang/perl6/ch-1.p6
@@ -0,0 +1,13 @@
+#!/bin/env perl6
+
+my $format = sub ($self) { sprintf '%04d/%02d/%02d', .year, .month, .day, given $self };
+
+sub last-day-to-last-friday(Int $year, Int $month, Int $day) {
+ my Date $d = Date.new(sprintf("%04d-%02d-%02d", $year, $month, $day));
+ $d -= ($d.day-of-week - 5) mod 7;
+}
+
+sub MAIN(Int $year) {
+ my @last-days = 31, Date.new(year => $year).is-leap-year ?? 29 !! 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31;
+ (1 .. 12).map({ last-day-to-last-friday($year, $_, @last-days[$_ - 1]) })».clone(formatter => $format)».say;
+}