Self numbers: Difference between revisions

→‎{{header|RPL}}: sieveless algorithm
(added RPL)
(→‎{{header|RPL}}: sieveless algorithm)
Line 2,055:
 
=={{header|RPL}}==
====Brute force, using a sieve:====
Using a sieve:
« 0
'''WHILE''' OVER '''REPEAT'''
Line 2,063 ⟶ 2,064:
» '<span style="color:blue">DIGSUM</span>' STO
« 500 0 → max n
« { } DUP max + 0 CON
1 CF
Line 2,076 ⟶ 2,077:
'''END''' DROP2
» » '<span style="color:blue">TASK</span>' STO
 
500 <span style="color:blue">TASK</span>
{{out}}
<pre>
Line 2,083 ⟶ 2,082:
</pre>
Runs in 2 minutes 8 seconds on a HP-48SX.
====Maximilian F. Hasler's algorithm====
Translation of the PARI/GP formula on the OEIS page:
« → n
« { } 1 SF
1 n 2 / IP n XPON 1 + 9 * MIN '''FOR''' j
'''IF''' n j - <span style="color:blue">DIGSUM</span> j == '''THEN''' 1 CF n 'j' STO '''END'''
'''NEXT'''
1 FS?
» '<span style="color:blue">SELF?</span>' STO
« { }
'''WHILE''' OVER SIZE 50 < REPEAT
'''IF''' DUP <span style="color:blue">SELF?</span> '''THEN''' SWAP OVER + SWAP '''END'''
1 +
'''END''' DROP
500» '<span style="color:blue">TASK</span>' STO
Same result as above. No need for sieve, but much slower: 10 minutes 52 seconds on a HP-48SX.
 
=={{header|Sidef}}==
1,150

edits