Brilliant numbers: Difference between revisions

add RPL
No edit summary
(add RPL)
Line 1,710:
First >= 100,000,000 is 573929ᵗʰ in the series: 100,140,049
First >= 1,000,000,000 is 7407841ˢᵗ in the series: 1,000,000,081</pre>
=={{header|RPL}}==
A fast semiprime checker was needed here.
{| class="wikitable" ≪
! RPL code
! Comment
|-
|
≪ DUP √ CEIL 0 → max div
≪ 0
2 max '''FOR''' j
'''WHILE''' OVER j MOD NOT '''REPEAT'''
SWAP j / SWAP 1 + j 'div' STO '''END'''
'''IF''' DUP 2 > '''THEN''' max 'j' STO '''END'''
'''NEXT'''
'''IF''' OVER 1 > '''THEN''' 1 + '''END'''
SWAP DROP 2 == div *
≫ ≫ ‘<span style="color:blue">SPR1?</span>’ STO
'''IF''' DUP <span style="color:blue">SPR1?</span> DUP '''THEN'''
DUP2 / XPON SWAP XPON == SWAP DROP
'''ELSE''' DROP2 0 '''END'''
≫ ‘<span style="color:blue">BRIL?</span>’ STO
|
<span style="color:blue">SPR1?</span> ''( n → divisor ) ''
cnt = 0;
for j = 2 to ceiling(sqrt(n))
while (n % j == 0)
n /= j ; ++cnt ; div = j ;
if cnt > 2 then break;
if (num > 1) ++cnt;
return divisor if semiprime, otherwise zero
<span style="color:blue">BRIL?</span> ''( n → boolean ) ''
if semiprime then
compare divisors' size
else not a brilliant number
|}
≪ { } 1 '''WHILE''' OVER SIZE 100 < '''REPEAT''' '''IF''' DUP <span style="color:blue">BRIL?</span> '''THEN''' SWAP OVER + SWAP '''END''' 1 + '''END''' DROP ≫ EVAL
≪ { } 1 5 '''FOR''' n n ALOG '''WHILE''' DUP <span style="color:blue">BRIL?</span> NOT '''REPEAT''' 1 + '''END''' + '''NEXT''' ≫ EVAL
{{out}}
<pre>
2: { 4 6 9 10 14 15 21 25 35 49 121 143 169 187 209 221 247 253 289 299 319 323 341 361 377 391 403 407 437 451 473 481 493 517 527 529 533 551 559 583 589 611 629 649 667 671 689 697 703 713 731 737 767 779 781 793 799 803 817 841 851 869 871 893 899 901 913 923 943 949 961 979 989 1003 1007 1027 1037 1067 1073 1079 1081 1121 1139 1147 1157 1159 1189 1207 1219 1241 1247 1261 1271 1273 1333 1343 1349 1357 1363 1369 }
1: { 10 121 1003 10201 100013 1018081 }
</pre>
 
=={{header|Rust}}==
{{trans|C++}}
Line 1,827 ⟶ 1,876:
Elapsed time: 1515 milliseconds
</pre>
 
=={{header|Sidef}}==
<syntaxhighlight lang="ruby">func is_briliant_number(n) {
1,150

edits