#!/usr/local/bin/perl # day 2015-20 use strict; use warnings; use v5.32; use Math::Prime::Util qw( divisors ); use List::Util qw( sum ); my $input = 33100000; my $house = 1; $house++ while ( sum( divisors( $house ) ) * 10 < $input ); say "part 1: ", $house; $house = 1; do { $house++ } until 11 * sum(grep { $_ >= $house/50 } divisors($house)) >= $input; say "part 2: ", $house;