Pernicious numbers: Difference between revisions
Content added Content deleted
m (→{{header|Phix}}: is_prime() now builtin) |
(Added Wren) |
||
Line 2,714: | Line 2,714: | ||
<lang wortel>!-ispernum 1..36 ; returns [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] |
<lang wortel>!-ispernum 1..36 ; returns [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] |
||
!-ispernum 888888877..888888888 ; returns [888888877 888888878 888888880 888888883 888888885 888888886]</lang> |
!-ispernum 888888877..888888888 ; returns [888888877 888888878 888888880 888888883 888888885 888888886]</lang> |
||
=={{header|Wren}}== |
|||
{{trans|Go}} |
|||
<lang ecmascript>var pernicious = Fn.new { |w| |
|||
var ff = 2.pow(32) - 1 |
|||
var mask1 = (ff / 3).floor |
|||
var mask3 = (ff / 5).floor |
|||
var maskf = (ff / 17).floor |
|||
var maskp = (ff / 255).floor |
|||
w = w - (w >> 1 & mask1) |
|||
w = (w & mask3) + (w >>2 & mask3) |
|||
w = (w + (w >> 4)) & maskf |
|||
return 0xa08a28ac >> (w*maskp >> 24) & 1 != 0 |
|||
} |
|||
var i = 0 |
|||
var n = 1 |
|||
while (i < 25) { |
|||
if (pernicious.call(n)) { |
|||
System.write("%(n) ") |
|||
i = i + 1 |
|||
} |
|||
n = n + 1 |
|||
} |
|||
System.print() |
|||
for (n in 888888877..888888888) { |
|||
if (pernicious.call(n)) System.write("%(n) ") |
|||
} |
|||
System.print()</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|zkl}}== |
=={{header|zkl}}== |