Erdös-Selfridge categorization of primes: Difference between revisions

→‎{{header|Phix}}: fixed the performance issue under p2js
(→‎{{header|Wren}}: Doh, need more sleep!)
(→‎{{header|Phix}}: fixed the performance issue under p2js)
Line 186:
=={{header|Phix}}==
{{libheader|Phix/online}}
You can run a severely cut-down version of this online [http://phix.x10.mx/p2js/esprimes.htm here] -(but sadly, while desktop/Phix finishes all 1e6 in just 11s, under pwa/p2js 1e4 takes 2s, overexpect a relativelyblank whopping 5 minsscreen for 1e5,about and on the basis of that I am not particularly inclined to bother to wait and see whether 1e6 would ever finish, in a web browser that is.20s)
<!--<lang Phix>(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span> <span style="color: #000080;font-style:italic;">-- (severely cut-down)</span>
Line 192:
<span style="color: #008080;">function</span> <span style="color: #000000;">es_cat</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">p</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">p</span><span style="color: #0000FF;">></span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">escache</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">and</span> <span style="color: #7060A8;">platform</span><span style="color: #0000FF;">()!=</span><span style="color: #004600;">JS</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">escache</span> <span style="color: #0000FF;">&=</span> <span style="color: #7060A8;">repeat</span><span style="color: #0000FF;">(</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">p</span><span style="color: #0000FF;">-</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">escache</span><span style="color: #0000FF;">))</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">category</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">escache</span><span style="color: #0000FF;">[</span><span style="color: #000000;">p</span><span style="color: #0000FF;">]</span>
<span style="color: #008080;">if</span> <span style="color: #000000008080;">categorynot</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0category</span> <span style="color: #008080;">then</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">f</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">filter</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">prime_factors</span><span style="color: #0000FF;">(</span><span style="color: #000000;">p</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #004600;">false</span><span style="color: #0000FF;">,-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">),</span><span style="color: #008000;">"&gt;"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">3</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">category</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span>
Line 241:
<span style="color: #004080;">atom</span> <span style="color: #000000;">t0</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">time</span><span style="color: #0000FF;">()</span>
<span style="color: #000000;">categorise</span><span style="color: #0000FF;">(</span><span style="color: #000000;">200</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">categorise</span><span style="color: #0000FF;">(</span><span style="color: #008080;">iff</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">platform</span><span style="color: #0000FF;">()=</span><span style="color: #004600;">JS</span><span style="color: #0000FF;">?</span><span style="color: #000000;">1e4</span><span style="color: #0000FF;">:</span><span style="color: #000000;">1e6</span><span style="color: #0000FF;">))</span>
<span style="color: #0000FF;">?</span><span style="color: #7060A8;">elapsed</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">time</span><span style="color: #0000FF;">()-</span><span style="color: #000000;">t0</span><span style="color: #0000FF;">)</span>
<!--</lang>-->
Line 268:
"11.0s"
</pre>
Takes about twice as long under pwa/p2js.
 
=={{header|Raku}}==
7,818

edits