Self numbers: Difference between revisions
Content deleted Content added
added RPL |
→{{header|RPL}}: sieveless algorithm |
||
Line 2,055: | Line 2,055: | ||
=={{header|RPL}}== |
=={{header|RPL}}== |
||
Brute force |
====Brute force==== |
||
Using a sieve: |
|||
« 0 |
« 0 |
||
'''WHILE''' OVER '''REPEAT''' |
'''WHILE''' OVER '''REPEAT''' |
||
Line 2,063: | Line 2,064: | ||
» '<span style="color:blue">DIGSUM</span>' STO |
» '<span style="color:blue">DIGSUM</span>' STO |
||
« 0 → max n |
« 500 0 → max n |
||
« { } DUP max + 0 CON |
« { } DUP max + 0 CON |
||
1 CF |
1 CF |
||
Line 2,076: | Line 2,077: | ||
'''END''' DROP2 |
'''END''' DROP2 |
||
» » '<span style="color:blue">TASK</span>' STO |
» » '<span style="color:blue">TASK</span>' STO |
||
⚫ | |||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 2,083: | Line 2,082: | ||
</pre> |
</pre> |
||
Runs in 2 minutes 8 seconds on a HP-48SX. |
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}}== |
=={{header|Sidef}}== |