aboutsummaryrefslogtreecommitdiff
path: root/challenge-046
diff options
context:
space:
mode:
authoruser-person <60802990+user-person@users.noreply.github.com>2020-02-09 02:44:48 -0500
committerGitHub <noreply@github.com>2020-02-09 02:44:48 -0500
commitac16aa175ac5acd9fcb0915a3ded6c6cd621604e (patch)
treeb17f4ed824bca9140931aa6448ff20a4023b9ceb /challenge-046
parent60787ac6d89c436b85d52a0485da1c516fad52e3 (diff)
downloadperlweeklychallenge-club-ac16aa175ac5acd9fcb0915a3ded6c6cd621604e.tar.gz
perlweeklychallenge-club-ac16aa175ac5acd9fcb0915a3ded6c6cd621604e.tar.bz2
perlweeklychallenge-club-ac16aa175ac5acd9fcb0915a3ded6c6cd621604e.zip
Create ch-2.pl
Diffstat (limited to 'challenge-046')
-rw-r--r--challenge-046/user-person/perl/ch-2.pl46
1 files changed, 46 insertions, 0 deletions
diff --git a/challenge-046/user-person/perl/ch-2.pl b/challenge-046/user-person/perl/ch-2.pl
new file mode 100644
index 0000000000..4d6573d280
--- /dev/null
+++ b/challenge-046/user-person/perl/ch-2.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+
+###########################################################################
+# script name: ch-2.pl #
+# #
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-046/ #
+# #
+###########################################################################
+
+use strict;
+use warnings;
+use diagnostics;
+
+my @doors = ();
+my $MAX = 500;
+
+sub change {
+ return $_[0] eq "OPENED" ? "CLOSED" : "OPENED";
+}
+
+push @doors, "CLOSED" foreach (0..$MAX);
+
+ROOM:
+for ( my $i = 1; $i <= $MAX; ++$i ) {
+
+ if ($i > $MAX / 2 ) {
+ $doors[$i] = change $doors[$i];
+ next ROOM;
+ }
+
+ for ( my $j = 1; $j <= $MAX; ++$j ) {
+ if ($j % $i == 0) {
+ $doors[$j] = change $doors[$j];
+ }
+ }
+}
+
+for ( my $k = 1; $k <= $MAX; ++$k ) {
+ print "$k " if $doors[$k] eq "OPENED";
+}
+print "\n";
+
+__END__
+ch-2.pl output:
+
+1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484