Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- use feature qw(say);
- use List::Util qw(sum);
- my @input = map { chomp; map { [split /-/] } split /,/ } <>;
- my $part1 = 0;
- my $part2 = 0;
- foreach my $range (@input) {
- my ($first, $last) = @$range;
- my %invalid;
- for (my $i = 1; "$i$i" <= $last; $i++) {
- my $num = "$i$i";
- $part1 += $num if ($first <= $num <= $last);
- for ($num .= $i while ($num < $first); $num <= $last; $num .= $i) {
- $invalid{$num}++;
- }
- }
- $part2 += sum keys %invalid if (%invalid);
- }
- say "Part 1: $part1";
- say "Part 2: $part2";
Advertisement
Add Comment
Please, Sign In to add comment