Mian-Chowla sequence: Difference between revisions

m
→‎Sieve version: improved code
(→‎{{header|RPL}}: faster sieve version)
m (→‎Sieve version: improved code)
Line 1,910:
</pre>
===Sieve version===
This approach is 36 times faster and uses less memory.
« 39 DUP STWS / CEIL
« # 0b » 'x' 1 4 ROLL 1 SEQ
Line 1,923:
» '<span style="color:blue">SVS?</span>' STO <span style="color:grey">''@ ( val 'sieve' → boolean )''</span>
« 50000 <span style="color:blue">CSV</span> 'Sums' nSTO sums2 'Sums' <span style="color:blue">SSV</span> { 1 }
« { 1'''WHILE''' }DUP2 2SIZE > 'sums' SSV'REPEAT'''
'''WHILE''' DUP SIZE n < '''REPEAT'''
DUP DUP SIZE GET
'''DO''' 1 +
Line 1,931 ⟶ 1,930:
DUP2 ADD
1 OVER SIZE '''FOR''' j
'''IF''' DUP j GET 'sumsSums' <span style="color:blue">SVS?</span> '''THEN''' 1 CF SIZE 'j' STO '''END'''
'''NEXT'''
'''UNTIL''' 1 FS? '''END'''
1
1 3 PICK SIZE '''START''' GETI 'sumsSums' <span style="color:blue">SSV</span> '''NEXT'''
DROP2
DUP 2 * 'sumsSums' <span style="color:blue">SSV</span>
+
'''END'''
SWAP DROP 'Sums' PURGE
» » '<span style="color:blue">A5282</span>' STO
 
100 <span style="color:blue">A5282</span>
1,150

edits