Arithmetic/Rational: Difference between revisions
Content added Content deleted
(→{{header|REXX}}: added the REXX language. -- ~~~~) |
(→{{header|REXX}}: added the list of fractions used to sum the reciprocals. -- ~~~~) |
||
Line 2,218: | Line 2,218: | ||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
<lang rexx>/*REXX pgm implements a reasonably complete rational arithmetic (fract.)*/ |
<lang rexx>/*REXX pgm implements a reasonably complete rational arithmetic (fract.)*/ |
||
L=length(2**19-1) /*saves time by checking even #s.*/ |
|||
do j=2 to 2**19-1 by 2 /*ignore unity (can't be perfect)*/ |
do j=2 to 2**19-1 by 2 /*ignore unity (can't be perfect)*/ |
||
$= |
$=divisors(j); s=0; @= /*get divisors, zero sum, null @.*/ |
||
⚫ | |||
s=0 |
|||
r='1/'word($,k); @=@ r; s=fractFun(r,,s) |
|||
end /*k*/ |
|||
if s\==1 then iterate |
|||
⚫ | |||
say 'perfect number:' right(j,L) ' fractions:' @ |
|||
end /*j*/ |
end /*j*/ |
||
exit /*stick a fork in it, we're done.*/ |
exit /*stick a fork in it, we're done.*/ |
||
Line 2,311: | Line 2,311: | ||
'''output''' |
'''output''' |
||
<pre style="overflow:scroll"> |
<pre style="overflow:scroll"> |
||
perfect number: 6 |
perfect number: 6 fractions: 1/2 1/3 1/6 |
||
perfect number: 28 |
perfect number: 28 fractions: 1/2 1/4 1/7 1/14 1/28 |
||
perfect number: 496 |
perfect number: 496 fractions: 1/2 1/4 1/8 1/16 1/31 1/62 1/124 1/248 1/496 |
||
perfect number: 8128 fractions: 1/2 1/4 1/8 1/16 1/32 1/64 1/127 1/254 1/508 1/1016 1/2032 1/4064 1/8128 |
|||
perfect number: 8128 |
|||
</pre> |
</pre> |
||