use strict; use warnings; my @nums; while (<>) { chomp; push @nums, oct("0b".$_); } my $gamma = 0; for (my $i = 0; $i < 12; $i++) { my $ones = 0; foreach (@nums) { $ones++ if $_ & (1 << $i); } $gamma |= 1 << $i if $ones > @nums / 2; } my $epsilon = ~$gamma & 0xFFF; print $gamma * $epsilon, "\n";