Jump to content

Arithmetic/Rational: Difference between revisions

→‎{{header|J}}: Use lang tags
(→‎{{header|J}}: Use lang tags)
Line 674:
J implements rational numbers:
 
<lang j> 3r4*2r5
3r10</lang>
 
That said, note that J's floating point numbers work just fine for the stated problem:
<lang j> is_perfect_rational=: 2 = (1 + i.) +/@:%@([ #~ 0 = |) ]</lang>
 
faster version (but the problem, as stated, is still tremendously inefficient):
<lang j> factors=: ([: ~. ] */ .^"1 2: #:@i.@^ #)@q: ::]
is_perfect_rational=: 2= +/@:%@factors</lang>
 
<lang j> I.is_perfect_rational@"0 i.2^19
6 28 496 8128
I.is_perfect_rational@x:@"0 i.2^19x
6 28 496 8128</lang>
 
=={{header|Mathematica}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.