;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 '×', division '/', integer division '÷', modulo division, the comparison operators (e.g. '<', '≤', '>', & '≥') and equality operators (e.g. '=' & '≠'). 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 219 by summing the reciprocal of the factors. ;Related task: *   [[Perfect Numbers]]