RosettaCodeData/Task/Arithmetic-Rational/REXX/arithmetic-rational.rexx
2026-04-30 12:34:36 -04:00

58 lines
1.3 KiB
Rexx

-- 21 Feb 2026
include Setting
say 'RATIONAL ARITHMETIC'
say version
say
a='1 2'; b='-3 4'; c='5 -6'; d='-7 -8'; e=3; f=1.666666666
say 'VALUES'
say 'a =' Rat2form(a)
say 'b =' Rat2form(b)
say 'c =' Rat2form(c)
say 'd =' Rat2form(d)
say 'e =' e
say 'f =' f
say
say 'BASICS'
say 'a+b =' Rat2form(AddQ(a,b))
say 'a-b =' Rat2form(SubQ(a,b))
say 'a*b =' Rat2form(MulQ(a,b))
say 'a/b =' Rat2form(DivQ(a,b))
say '-a =' Rat2form(NegQ(a))
say '1/a =' Rat2form(InvQ(a))
say
say 'COMPARE'
say 'a<b =' LtQ(a,b)
say 'a<=b =' LeQ(a,b)
say 'a=b =' EqQ(a,b)
say 'a>=b =' GeQ(a,b)
say 'a>b =' GtQ(a,b)
say 'a<>b =' NeQ(a,b)
say
say 'BONUS'
say 'Abs(c) =' Rat2form(AbsQ(c))
say 'Float(b) =' FloatQ(b)
say 'Neg(d) =' Rat2form(NegQ(d))
say 'Power(a,e) =' Rat2form(PowQ(a,e))
say 'Rational(f) =' Rat2form(RatQ(f))
say
say 'FORMULA'
g=SquareQ(a); h=MulQ(-2,MulQ(a,b)); i=MulQ(3,c); j=MulQ(-4,MulQ(a,PowQ(d,4))); k=5
say 'a^2-2ab+3c-4ad^4+5 =' Rat2form(AddQ(g,AddQ(h,AddQ(i,AddQ(j,k)))))
say
say 'PERFECT NUMBERS'
numeric digits 20
do c=6 to 2**19
s=1 c; m=Isqrt(c)
do f=2 to m
if c//f=0 then
s=AddQ(s,AddQ(1 f,f c))
end f
if EqQ(s,1) then
say c 'is a perfect number'
end
call Timer
exit
-- All procedures ending with 'Q'; Rat2form; Isqrt; Timer
include Math