NB. 1 iff x and y are congruent mod m.

Congruent=: {{ =&:(m | m + m | ]) }} NB. unused.

is_Gaussian_prime=: 3 :0"0
 a=. | +. y
 if. 0 e. a do.
  NB. if. 3 (4 Congruent) +/ a do.
  if. 3 (= (4 | +/)) a do.
   1 p: +/ a
  else.
   0
  end.
 else.
  (1 p: +&:*:)/ a
 end.
)

NB. mathworld list of Gaussian primes in this realm.
assert 48 = +/(is_Gaussian_prime) ,j./~i:5

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to