my @a = qw(1 4 6 2 7 87 5 6 4 32); my @b = qw(86 50 62 41 32); my %primes; map { $primes{$_}++ } map { primes($_) } @a; map { $primes{$_}-- } map { primes($_) } @b; sub primes { ... # left as an exercise for the reader } #### $result *= $_ ** $primes{$_} for keys %primes;