Pairs with common factors: Difference between revisions

Content added Content deleted
m (→‎{{header|Wren}}: Changed to Wren S/H)
(→‎{{header|RPL}}: HP-49+ version)
Line 1,075: Line 1,075:
One millionth term: 196,035,947,609</pre>
One millionth term: 196,035,947,609</pre>
=={{header|RPL}}==
=={{header|RPL}}==
The <code>PHI</code> function comes from the totient function task.
The <code>PHI</code> function is defined at [[Totient function#RPL|Totient function]]
To save time, Σφ(j) are stored in a global variable named <code>ΣPHI</code>, which must be initialized at <code>{ 1 }</code> once.
To save time, Σφ(j) are stored in a global variable named <code>ΣPHI</code>, which must be initialized at <code>{ 1 }</code> once.
{{trans|C}}
{{works with|Halcyon Calc|4.2.8}}
{{works with|Halcyon Calc|4.2.8}}
{| class="wikitable"
{| class="wikitable"
Line 1,083: Line 1,084:
|-
|-
|
|
≪ <span style="color:green">∑PHI</span> SIZE
DUP 2 OVER √ '''FOR''' j
'''IF''' DUP j MOD NOT '''THEN'''
'''WHILE''' DUP j MOD NOT '''REPEAT''' j / '''END'''
SWAP DUP j / - SWAP
'''END'''
'''IF''' j 2 == '''THEN''' 1 'j' STO '''END'''
2 '''STEP'''
'''IF''' DUP 1 > '''THEN''' OVER SWAP / - '''ELSE''' DROP '''END'''
≫ ‘'''PHI'''’ STO
≪ '''∑PHI''' SIZE
'''IF''' DUP2 ≤ '''THEN''' DROP
'''IF''' DUP2 ≤ '''THEN''' DROP
'''ELSE'''
'''ELSE'''
''''∑PHI'''' OVER GET SWAP 1 + '''∑PHI''' SWAP 4 ROLL '''FOR''' j
'<span style="color:green">∑PHI</span>' OVER GET SWAP 1 + <span style="color:green">∑PHI</span> SWAP 4 ROLL '''FOR''' j
SWAP j '''PHI''' + SWAP OVER + NEXT
SWAP j <span style="color:blue">PHI</span> + SWAP OVER + NEXT
''''∑PHI'''' STO DROP '''∑PHI''' SIZE '''END'''
'<span style="color:green">∑PHI</span>' STO DROP <span style="color:green">∑PHI</span> SIZE '''END'''
''''∑PHI'''' SWAP GET
'<span style="color:green">∑PHI</span>' SWAP GET
≫ ''''→∑PHI'''' STO
≫ '<span style="color:blue">→∑PHI</span>' STO
≪ DUP DUP 1 - * 2 / 1 + SWAP '''→∑PHI''' - ≫ ‘'''A185670'''’ STO
≪ DUP DUP 1 - * 2 / 1 + SWAP <span style="color:blue">→∑PHI</span> - ≫ '<span style="color:blue">A185670</span>' STO
|
|
'''PHI''' ''( n -- φ(n) )''
'<span style="color:blue">→∑PHI</span>' ''( n -- φ(n) )''
Translation of C version
'''→∑PHI''' ''( n -- φ(n) )''
if n...
if n...
...is not already in ∑PHI
...is not already in ∑PHI
Line 1,125: Line 1,104:
'''A185670''' ''( n -- n*(n-1)/2 + 1 - Σφ(j) )''
'<span style="color:blue">A185670</span>' ''( n -- n*(n-1)/2 + 1 - Σφ(j) )''
|}
|}
≪ { } 1 100 FOR j j <span style="color:blue">A185670</span> + NEXT ≫ EVAL
{{in}}
1000 <span style="color:blue">A185670</span>
<pre>
{{works with|HP|49}}
≪ { } 1 100 FOR j j A185670 + NEXT ≫ EVAL
« DUP DUP 1 - 2 * / 1 +
1000 A185670
'j' 4 ROLL 'EULER(j)' ∑ - R→I
</pre>
» '<span style="color:blue">A185670</span>' STO
« « n <span style="color:blue">A185670</span> » 1 100 1 SEQ
1000 <span style="color:blue">A185670</span>
» '<span style="color:blue">TASK</span>' STO
{{out}}
{{out}}
<pre>
<pre>