use strict; use PDL::LiteF; use PDL::Primitive; use PDL::Reduce; use PDL::Types; use integer; my ($ans, $total, $total2, $sum, $num, $ones, $zeros); my $shifts = long ( 0, 1, 1 << 1, 1 << 2, 1 << 3, 1 << 4, 1 << 5, 1 << 6, 1 << 7, 1 << 8, 1 << 9, 1 << 10, 1 << 11, 1 << 12, 1 << 13, 1 << 14, 1 << 15, 1 << 16, 1 << 17, 1 << 18, 1 << 19, 1 << 20, 1 << 21, 1 << 22, 1 << 23 ); $ans = 0; for my $num (0 .. 16777216) { $sum = sum(which($shifts & $num)); $total = 2*$sum - 300; $ans++ if $total == 0; } print "$ans\n";