perl -e "print eval join '+',grep{((scalar @{[((sprintf '%b',$_)=~/1/g)]}))%2==0} 0..$ARGV[0];" 10
33
####
perl -e "print eval join '+',grep{(0.5*(4*$_+1-(-1)**scalar @{[((sprintf '%b',$_)=~/1/g)]}))%2==0} 0..$ARGV[0];" 10
33
####
use strict;
use warnings;
my $max = $ARGV[0]||10;
my $total;
my $num=0;
while ( evil_numbers($num)<= $max) {$total += evil_numbers($num);$num++}
print "$max gives a total of $total\n\n";
sub evil_numbers{ # https://oeis.org/A001969
my $n = shift; # nasty binary weight: https://oeis.org/A000120
return 0.5 * (4 * $n + 1 - (-1) **scalar @{[((sprintf '%b',$n)=~/1/g)]} );
}