Population count: Difference between revisions

Content added Content deleted
(Added Easylang)
(Added Run BASIC)
Line 1,014: Line 1,014:
return popul
return popul
end function</syntaxhighlight>
end function</syntaxhighlight>

{{out}}
==={{header|Run BASIC}}===
<pre>Same as Yabasic entry.</pre>
<syntaxhighlight lang="vb">function tobin$(num)
bin$ = ""
if num = 0 then bin$ = "0"
while num >= 1
num = num / 2
X$ = str$(num)
D$ = "": F$ = ""
for i = 1 to len(X$)
L$ = mid$(X$, i, 1)
if L$ <> "." then
D$ = D$ + L$
else
F$ = F$ + right$(X$, len(X$) - i)
exit for
end if
next i
if F$ = "" then B$ = "0" else B$ = "1"
bin$ = bin$ + B$
num = val(D$)
wend
B$ = ""
for i = len(bin$) to 1 step -1
B$ = B$ + mid$(bin$, i, 1)
next i
tobin$ = B$
end function

function population(number)
popul = 0
'digito$ = tobin$(number)
'print tobin$(number)
for i = 1 to len(tobin$(number))
popul = popul + val(mid$(tobin$(number), i, 1))
next i
population = popul
end function

sub evilodious limit, tipo
i = 0
cont = 0
while 1
eo = (population(i) mod 2)
if (tipo and eo = 1) or ((not(tipo) and not(eo)) = 1) then
cont = cont + 1: print i; " ";
end if
i = i + 1
if cont = limit then exit while
wend
end sub

print "Pop cont (3^x): ";
for i = 0 to 14
print population(3 ^ i); " ";
next i

print
print "Evil numbers: ";
call evilodious 15, 0

print
print "Odious numbers: ";
call evilodious 15, 1
end</syntaxhighlight>


=={{header|BCPL}}==
=={{header|BCPL}}==