Jump to content

Numbers which are the cube roots of the product of their proper divisors: Difference between revisions

m
→‎{{header|Phix}}: 8 factors (25% faster), raised limit to 500kth
m (→‎{{header|Phix}}: 8 factors (25% faster), raised limit to 500kth)
Line 138:
<span style="color: #004080;">sequence</span> <span style="color: #000000;">n50</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">count</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">n</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">n5</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">500</span>
<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: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"First 50 numbers which are the cube roots\n"</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" of the products of their proper divisors:\n"</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">while</span> <span style="color: #000000;">count</span><span style="color: #0000FF;"><</span><span style="color: #000000;">50000500000</span> <span style="color: #008080;">do</span>
<span style="color: #000080;font-style:italic;">-- if product(factors(n))=n*n*n then</span>
<span style="color: #008080;">if</span> <span style="color: #7060A8000000;">productn</span><span style="color: #0000FF;">(=</span><span style="color: #7060A8000000;">factors1</span> <span style="color: #0000FF008080;">(or</span> <span style="color: #0000007060A8;">nlength</span><span style="color: #0000FF;">))=(</span><span style="color: #0000007060A8;">nfactors</span><span style="color: #0000FF;">*(</span><span style="color: #000000;">n</span><span style="color: #0000FF;">*))=</span><span style="color: #000000;">n6</span> <span style="color: #008080;">then</span> <span style="color: #000080;font-style:italic;">-- faster/smidge safer</span>
<span style="color: #000000;">count</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">count</span><span style="color: #0000FF;"><=</span><span style="color: #000000;">50</span> <span style="color: #008080;">then</span>
Line 149 ⟶ 151:
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">elsif</span> <span style="color: #000000;">count</span><span style="color: #0000FF;">=</span><span style="color: #000000;">n5</span> <span style="color: #008080;">then</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%,6dth8dth: %,d (%s)\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">n5</span><span style="color: #0000FF;">,</span><span style="color: #000000;">n</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>
<span style="color: #000000;">n5</span> <span style="color: #0000FF;">*=</span> <span style="color: #000000;">10</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
Line 156 ⟶ 158:
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
<!--</syntaxhighlight>-->
By default factors() does not include 1 and n, or I could use length(factors(n,1)=8. 25% faster than using product().
{{out}}
<pre>
Line 166 ⟶ 169:
255 258 266 273 282 285 286 290 296 297
 
500th: 2,526 (0.0s)
5,000th: 23,118 (0.0s)
50,000th: 223,735 (0.6s)
500,000th: 2,229,229 (14.1s)
</pre>
 
7,820

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.