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:
« 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
Same result as above. No need for sieve, but much slower: 10 minutes 52 seconds on a HP-48SX.
=={{header|Sidef}}==
|