Duffinian numbers: Difference between revisions

Content added Content deleted
m (Correct spelling mistake.)
m (→‎{{header|RPL}}: formatting)
Line 1,347: Line 1,347:
|
|
DUP <span style="color:blue">∑DIV</span>
DUP '''∑DIV'''
'''IF''' DUP2 1 - == '''THEN''' DROP2 0 '''ELSE''' GCD 1 == '''END'''
'''IF''' DUP2 1 - == '''THEN''' DROP2 0 '''ELSE''' <span style="color:blue">GCD</span> 1 == '''END'''
≫ ‘'''DUFF?'''’ STO
≫ ‘<span style="color:blue">DUFF?</span>’ STO
≪ { } 2
≪ { } 2
'''WHILE''' OVER SIZE 50 < '''REPEAT'''
'''WHILE''' OVER SIZE 50 < '''REPEAT'''
'''IF''' DUP '''DUFF? THEN''' SWAP OVER + SWAP '''END'''
'''IF''' DUP '''<span style="color:blue">DUFF?</span> THEN''' SWAP OVER + SWAP '''END'''
1 +
1 +
'''END''' DROP
'''END''' DROP
≫ ‘'''TASK1'''’ STO
≫ ‘<span style="color:blue">TASK1</span>’ STO
≪ { } 4 → duff n
≪ { } 4 → duff n
≪ 0 0 0
≪ 0 0 0
'''WHILE''' duff SIZE 15 ≤ '''REPEAT'''
'''WHILE''' duff SIZE 15 ≤ '''REPEAT'''
ROT DROP n '''DUFF?'''
ROT DROP n <span style="color:blue">DUFF?</span>
'''IF''' 3 DUPN + + 3 == '''THEN'''
'''IF''' 3 DUPN + + 3 == '''THEN'''
n 2 - n 1 - n 3 →ARRY
n 2 - n 1 - n 3 →ARRY
Line 1,367: Line 1,367:
n 1 + 'n' STO '''END'''
n 1 + 'n' STO '''END'''
3 DROPN duff
3 DROPN duff
≫ ≫ ‘'''TASK2’''' STO
≫ ≫ ‘<span style="color:blue">TASK2</span>' STO
|
|
'''DUFF?( n -- boolean )
<span style="color:blue">DUFF?</span> ''( n -- boolean )''
get σ
get σ
if composite then check gcd(n,σ)
if composite then check gcd(n,σ)
‘'''TASK1'''’ ''( -- { duff1..duff50 } ) ''
<span style="color:blue">TASK1</span> ''( -- { duff1..duff50 } ) ''
loop from n=2 until 50 items in list
loop from n=2 until 50 items in list
if n is Duffinian then append to list
if n is Duffinian then append to list
Line 1,381: Line 1,381:
‘'''TASK2'''’ ''( -- { [duff_triplets] } ) ''
<span style="color:blue">TASK2</span> ''( -- { [duff_triplets] } ) ''
put 3 'false' boolean values in stack
put 3 'false' boolean values in stack
loop from n=4 until 15 items in list
loop from n=4 until 15 items in list