Bernoulli numbers: Difference between revisions

→‎{{header|RPL}}: HP-49+ version
(→‎{{header|RPL}}: HP-49+ version)
Line 3,932:
|
≪ DUP2 IM * ROT IM ROT RE * -
≫ ''''<span style="color:blue">FracSub'''</span>' STO
≪ DUP C→R ABS SWAP ABS DUP2 < ≪ SWAP ≫ IFT
'''WHILE''' DUP '''REPEAT''' SWAP OVER MOD '''END'''
DROP /
≫ ''''<span style="color:blue">FracSimp'''</span>' STO
Line 3,943:
1 m R→C +
'''IF''' m 2 ≥ '''THEN''' m 2 '''FOR''' j
DUP j 1 - GET OVER j GET '''<span style="color:blue">FracSub'''</span>
C→R SWAP j 1 - * SWAP R→C
'''<span style="color:blue">FracSimp'''</span> j 1 - SWAP PUT
-1 '''STEP END'''
'''NEXT''' 1 GET DUP RE SWAP 0 '''IFTE'''
≫ ''''<span style="color:blue">BRNOU'''</span>' STO
|
''( (a,b) (c,d) -- (e,f) )'' with e/f = a/b - c/d
Line 3,969:
|}
5 <span style="color:blue">BRNOU</span>
{{in}}
22 <span style="color:blue">BRNOU</span>
<pre>
5 BRNOU
22 BRNOU
</pre>
{{out}}
<pre>
Line 3,979 ⟶ 3,976:
1: (854513,138)
</pre>
 
===HP-49+ version===
From HP-49 models, RPL can natively handle (not too) long fractions.
{{works with|HP|49}}
≪ { }
1 ROT 1 + '''FOR''' m
m INV +
m 1 + → j
≪ '''WHILE''' 'j' DECR 2 ≥ '''REPEAT'''
j 1 - DUP2 GETI UNROT GET -
OVER * EVAL PUT
'''END'''
'''NEXT'''
HEAD
≫ '<span style="color:blue">BRNOU</span>' STO
≪ { }
0 ROT '''FOR''' n
'''IF''' n 2 > LASTARG MOD AND NOT '''THEN''' n <span style="color:blue">BRNOU</span> + '''END'''
'''NEXT'''
≫ '<span style="color:blue">TASK</span>' STO
{{inout}}
 
30 <span style="color:blue">TASK</span>
{{out}}
<pre>
1: {1 -1/2 1/6 -1/30 1/42 -1/30 5/66 -691/2730 7/6 -3617/510 43867/798 -174611/330 854513/138 -236364091/2730 8553103/6 -23749461029/870 8615841276005/14322 -7709321041217/510 2577687858367/6 -26315271553053477373/1919190 2929993913841559/6 -261082718496449122051/13530 1520097643918070802691/1806 -27833269579301024235023/690 596451111593912163277961/282 -5609403368997817686249127547/46410 495057205241079648212477525/66 -801165718135489957347924991853/1590 9149963634884862421418123812691/798 -2479392929313226753685415739663229/870 84483613348880041862046775994036021/354 -1215233140483755572040304994079820246041491/56786730}
</pre>
Runs in 1 hour 30 minutes on a HP-50g.
 
=={{header|Ruby}}==
1,150

edits