Pernicious numbers: Difference between revisions
Content added Content deleted
m (→{{header|Phix}}: syntax coloured) |
|||
Line 2,189: | Line 2,189: | ||
{888888877,888888878,888888880,888888883,888888885,888888886} |
{888888877,888888878,888888880,888888883,888888885,888888886} |
||
</pre> |
</pre> |
||
=={{header|Picat}}== |
|||
<lang Picat>go => |
|||
println(take_n(pernicious_number,25,1)), |
|||
println([J : J in 888888877..888888888, pernicious_number(J)]), |
|||
nl. |
|||
% Get the first N numbers that satisfies function F, starting with S |
|||
take_n(F,N,S) = L => |
|||
I = S, |
|||
C = 0, |
|||
L = [], |
|||
while(C < N) |
|||
if call(F,I) then |
|||
L := L ++ [I], |
|||
C := C + 1 |
|||
end, |
|||
I := I + 1 |
|||
end. |
|||
pop_count(N) = sum([1: I in N.to_binary_string(), I = '1']). |
|||
pernicious_number(N) => prime(pop_count(N)).</lang> |
|||
{{out}} |
|||
<pre>[3,5,6,7,9,10,11,12,13,14,17,18,19,20,21,22,24,25,26,28,31,33,34,35,36] |
|||
[888888877,888888878,888888880,888888883,888888885,888888886]</pre> |
|||
=={{header|PicoLisp}}== |
=={{header|PicoLisp}}== |