Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
34
Task/Circular-primes/J/circular-primes.j
Normal file
34
Task/Circular-primes/J/circular-primes.j
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
R=: 10x #. #&1
|
||||
assert 11111111111111111111111111111111x -: R 32
|
||||
|
||||
Filter=: (#~`)(`:6)
|
||||
|
||||
rotations=: (|."0 1~ i.@#)&.(10&#.inv)
|
||||
assert 123 231 312 -: rotations 123
|
||||
|
||||
primes_less_than=: i.&.:(p:inv)
|
||||
assert 2 3 5 7 11 -: primes_less_than 12
|
||||
|
||||
|
||||
NB. circular y --> y is the order of magnitude.
|
||||
circular=: monad define
|
||||
P25=: ([: -. (0 e. 1 3 7 9 e.~ 10 #.inv ])&>)Filter primes_less_than 10^y NB. Q25 are primes with 1 3 7 9 digits
|
||||
P=: 2 5 , P25
|
||||
en=: # P
|
||||
group=: en # 0
|
||||
next=: 1
|
||||
for_i. i. # group do.
|
||||
if. 0 = i { group do. NB. if untested
|
||||
j =: P i. rotations i { P NB. j are the indexes of the rotated numbers in the list of primes
|
||||
if. en e. j do. NB. if any are unfound
|
||||
j=: j -. en NB. prepare to mark them all as searched, and failed.
|
||||
g=: _1
|
||||
else.
|
||||
g=: next NB. mark the set as found in a new group. Because we can.
|
||||
next=: >: next
|
||||
end.
|
||||
group=: g j} group NB. apply the tested mark
|
||||
end.
|
||||
end.
|
||||
group </. P
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue