diff options
| author | user-person <60802990+user-person@users.noreply.github.com> | 2020-02-09 02:44:48 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-09 02:44:48 -0500 |
| commit | ac16aa175ac5acd9fcb0915a3ded6c6cd621604e (patch) | |
| tree | b17f4ed824bca9140931aa6448ff20a4023b9ceb /challenge-046 | |
| parent | 60787ac6d89c436b85d52a0485da1c516fad52e3 (diff) | |
| download | perlweeklychallenge-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.pl | 46 |
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 |
