Population count

From Rosetta Code
Revision as of 06:21, 20 February 2021 by Drkameleon (talk | contribs)

Arturo

<lang rebol>popCount: function [num][

   size select split to :string as.binary num 'x -> x="1"

]

print "population count for the first thirty powers of 3:" print map 0..29 => [popCount 3^&]

print "first thirty evil numbers" print take select 0..100 => [even? popCount &] 30

print "first thirty odious numbers" print take select 0..100 => [odd? popCount &] 30</lang>

Output:
population count for the first thirty powers of 3:
1 2 2 4 3 6 6 5 6 8 9 13 10 11 14 15 11 14 14 17 17 20 19 22 16 18 24 30 25 25 
first thirty evil numbers
0 3 5 6 9 10 12 15 17 18 20 23 24 27 29 30 33 34 36 39 40 43 45 46 48 51 53 54 57 58 
first thirty odious numbers
1 2 4 7 8 11 13 14 16 19 21 22 25 26 28 31 32 35 37 38 41 42 44 47 49 50 52 55 56 59