Pythagorean triples: Difference between revisions

Content added Content deleted
(→‎{{header|J}}: add whitespace to help with reading)
Line 136: Line 136:
Brute force approach:
Brute force approach:


<lang j>pytr=:3 :0
<lang j>pytr=: 3 :0
r=.i.0 3
r=. i. 0 3
for_a.1+i.<.(y-1)%3 do.
for_a. 1 + i. <.(y-1)%3 do.
b=.1+a+i.<.(y%2)-3*a%2
b=. 1 + a + i. <.(y%2)-3*a%2
c=. a +&.*: b
c=. a +&.*: b
keep=. (c=<.c)*.y>:a+b+c
keep=. (c = <.c) *. y >: a+b+c
if.1 e.keep do.
if. 1 e. keep do.
r=.r, a,.b ,.&(keep&#) c
r=. r, a,.b ,.&(keep&#) c
end.
end.
end.
end.
Line 149: Line 149:
)
)


prim=:1 = 2 +./@{. |:</lang>
prim=: 1 = 2 +./@{. |:</lang>


Example use:
Example use:
Line 187: Line 187:


<lang j>trips=:3 :0
<lang j>trips=:3 :0
'm n'=. |:(#~ 1 = 2 | +/"1)(#~ >/"1),/,"0/~}.i.<.%:y
'm n'=. |:(#~ 1 = 2 | +/"1)(#~ >/"1) ,/ ,"0/~ }. i. <. %: y
prim=. (#~ 1 = 2 +./@{. |:) (#~ y>:+/"1)m (-&*:,. +:@*,. +&*:) n
prim=. (#~ 1 = 2 +./@{. |:) (#~ y >: +/"1)m (-&*: ,. +:@* ,. +&*:) n
/:~;<@(,.~ # {. 1:)@(*/~ 1 + y i.@<.@% +/)"1 prim
/:~ ; <@(,.~ # {. 1:)@(*/~ 1 + y i.@<.@% +/)"1 prim
)</lang>
)</lang>