Population count: Difference between revisions
Content added Content deleted
(add OCaml) |
(→{{header|RPL}}: Creation) |
||
Line 3,771: | Line 3,771: | ||
Odious numbers: |
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]</pre> |
[ 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]</pre> |
||
=={{header|RPL}}== |
|||
{{Trans|Forth}} |
|||
≪ # 0b SWAP |
|||
'''WHILE''' DUP # 0b ≠ '''REPEAT''' |
|||
DUP # 1b AND ROT + SWAP SR '''END''' |
|||
DROP B→R |
|||
≫ ''''POPCT'''' STO |
|||
≪ '''POPCT''' 2 MOD |
|||
≫ ‘'''ODUS?'''’ STO |
|||
≪ '''ODUS?''' NOT |
|||
≫ ‘'''EVIL?'''’ STO |
|||
≪ → n |
|||
≪ { } # 1b 1 n START |
|||
DUP '''POPCT''' ROT SWAP + SWAP 3 * NEXT DROP |
|||
{ } # 0b WHILE OVER SIZE n < REPEAT |
|||
IF DUP '''EVIL?''' THEN SWAP OVER B→R + SWAP END 1 + END DROP |
|||
{ } # 0b WHILE OVER SIZE n < REPEAT |
|||
IF DUP '''ODUS?''' THEN SWAP OVER B→R + SWAP END 1 + END DROP |
|||
≫ ≫ ‘TASK’ STO |
|||
30 TASK |
|||
{{out}} |
|||
<pre> |
|||
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 } |
|||
2: { 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 } |
|||
1: { 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 } |
|||
</pre> |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |