%!PS /aeq { 3 dict begin /a exch def /b exch def a length b length eq { /e true def 0 1 a length 1 sub { dup a exch get exch b exch get ne { /e false def exit } if } for e } { false } ifelse end } bind def /isprime { 4 dict begin /candidate exch def /prime false def candidate 2 ge { /prime true def candidate 2 eq candidate 3 eq or not { candidate 2 mod 0 eq { /prime false def } { candidate 3 mod 0 eq { /prime false def } { /limit candidate sqrt cvi 1 add def /anchor 0 def { /anchor anchor 6 add def anchor limit gt { exit } if [ -1 1 ] { anchor add candidate exch mod 0 eq { /prime false def exit } if } forall prime false eq { exit } if } loop } ifelse } ifelse } if } if prime end } bind def /hammingweight { 0 { 1 index 0 gt { exch dup 1 sub and exch 1 add } { exch pop exit } ifelse } loop } bind def /pernicious { 2 dict begin /n exch def /c 1 def [ { c hammingweight isprime { c /n n 1 sub def n 0 le { exit } if } if /c c 1 add def } loop ] end } bind def 10 pernicious [ 3 5 6 7 9 10 11 12 13 14 ] aeq { (Pass) } { (FAIL) } ifelse =