RosettaCodeData/Task/Arithmetic-Rational/00-TASK.txt

23 lines
1.1 KiB
Plaintext

;Task:
Create a reasonably complete implementation of rational arithmetic in the particular language using the idioms of the language.
;Example:
Define a new type called '''frac''' with binary operator "//" of two integers that returns a '''structure''' made up of the numerator and the denominator (as per a rational number).
Further define the appropriate rational unary '''operators''' '''abs''' and '-', with the binary '''operators''' for addition '+', subtraction '-', multiplication '&times;', division '/', integer division '&divide;', modulo division, the comparison operators (e.g. '<', '&le;', '>', & '&ge;') and equality operators (e.g. '=' & '&ne;').
Define standard coercion '''operators''' for casting '''int''' to '''frac''' etc.
If space allows, define standard increment and decrement '''operators''' (e.g. '+:=' & '-:=' etc.).
Finally test the operators:
Use the new type '''frac''' to find all [[Perfect Numbers|perfect numbers]] less than 2<sup>19</sup> by summing the reciprocal of the factors.
;Related tasks:
* &nbsp; [[Perfect Numbers]]
* &nbsp; [[Check Machin-like formulas]]
<br><br>