my %sums; my $sum_of_pairs = 0; for ($i = 1; $i < 10000; $i++) { $sums{$i} = d($i); } for my $k ( keys %sums ) { if (exists($sums{$sums{$k}}) && $k != $sums{$k} && $k == $sums{$sums{$k}}) { $sum_of_pairs += $k; } } print $sum_of_pairs . "\n"; exit; sub d { my ($n) = @_; my $sum =0; for (1 .. sqrt($n)) { unless ($n % $_) { $sum += $_; unless ($_ == 1 || $_ == sqrt($n)) { $sum += ($n / $_); } } } return $sum; }