Weird numbers: Difference between revisions

Content added Content deleted
m (→‎{{header|Wren}}: Minor tidy)
(added RPL)
Line 2,731: Line 2,731:
Found 400 weird numbers
Found 400 weird numbers
</pre>
</pre>

=={{header|RPL}}==
{{works with|RPL|HP-49C}}
<span style="color:grey"> @ ------- Sieve manager ---------</span>
« 39 DUP STWS / CEIL
« # 0b » 'x' 1 4 ROLL 1 SEQ
» '<span style="color:blue">CSV</span>' STO
« SWAP 1 - 39 MOD LASTARG / IP 1 +
ROT SWAP DUP2 GET 2 5 ROLL ^ R→B OR PUT
» '<span style="color:blue">SSV</span>' STO
« SWAP 1 - 39 MOD LASTARG / IP 1 +
ROT SWAP GET 2 ROT ^ R→B AND # 0b ≠
» '<span style="color:blue">SVS?</span>' STO
<span style="color:grey"> @ --- Weird numbers generator ---</span>
« → beg
« DUP ←divs DOT ←n
'''CASE'''
DUP2 == '''THEN''' DROP2 1 SF '''END'''
> '''THEN'''
beg ←ndiv '''FOR''' j
'''IF''' DUP j GET '''THEN'''
DUP j 0 PUT j <span style="color:blue">FINDSUM</span>
'''IF''' 1 FS? '''THEN''' ←ndiv 'j' STO '''END'''
'''END'''
'''NEXT'''
'''END'''
'''END''' DROP
» » '<span style="color:blue">FINDSUM</span>' STO <span style="color:grey">''@ ( [ bits ] 1st_bit → ) flag 1 is set if →n is semi-perfect''</span>
« '''IF''' DUP 'Sieve' <span style="color:blue">SVS?</span> THEN DROP 0
'''ELSE'''
DUP DIVIS SORT REVLIST TAIL AXL DUP SIZE EVAL → ←n ←divs ←ndiv
« ←divs DUP 1 CON
'''IF''' SWAP OVER DOT ←n < '''THEN''' DROP 0
'''ELSE'''
1 CF 1 <span style="color:blue">FINDSUM</span> 1 FC?
'''IF''' DUP NOT ←n SieveMax 2 / ≤ AND '''THEN'''
2 SieveMax ←n / FLOOR
'''FOR''' j j ←n * 'Sieve' <span style="color:blue">SSV</span> '''NEXT'''
'''END'''
'''END'''
»
'''END'''
» '<span style="color:blue">WEIRD?</span>' STO
« 2 → n
« { } 20000 'SieveMax' ▶ <span style="color:blue">CSV</span> 'Sieve' STO
'''WHILE''' DUP SIZE 25 < '''REPEAT'''
'''IF''' n <span style="color:blue">WEIRD?</span> THEN n + '''END'''
'n' 2 STO+
'''END'''
» » '<span style="color:blue">TASK</span>' STO
{{out}}
<pre>
1: { 70 836 4030 5830 7192 7912 9272 10430 10570 10792 10990 11410 11690 12110 12530 12670 13370 13510 13790 13930 14770 15610 15890 16030 16310 }
</pre>
It took 269 seconds for an emulator running on an iPhone XR => probably 3 hours for an HP-50 pocket calculator.


=={{header|Ruby}}==
=={{header|Ruby}}==