Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Challenges

Comments on Determine if a polyomino is "prime"

Post

Determine if a polyomino is "prime"

+2
−0

An $n$-polyomino is a connected subset of the square tiling consisting of $n$ squares. We will not require that polyominos be simply connected, that is they can have holes.

We will say a $n$-polyomino is prime if it cannot be disected into disjoint $k$-polyominos for any 1<$k$<$n$. For example this square 4-polyomino:

XX
XX

can be dissected into two 2-polyominos, but this "T"-shaped 4-polyomino cannot:

XXX
 X

The $k$-polyominos do not need to be equal for example:

XXXXX
 X XX

This 8-polyomino can be subdivided into the two polyominos shown in the last examples. They are not equal but they are both 4-polyominos so the example is not prime.

Naturally if $n$ is a prime number all $n$-polyominos are prime, however as shown above there are prime $n$-polyominos where $n$ is not prime. Here are examples for the next couple composite numbers

6

 X
XXXX
 X

8

  X
XXXXX
 X X

9

XXXXXXXX
  X

10

XXXXXX
 X
 XXX

12

XXXXXXXXX
 X X
   X

14

XXXXXXXXXXXX
 X   X

15

XXX
X X X
XXXXXX
X X
  X

Challenge

Given a polyomino as input output one consistent value if it is prime and another consistent distinct value if it is not prime.

This is code-golf the goal being to minimize the size of your source code as measured in bytes.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

3 comment threads

Holes and test cases (3 comments)
Can the polynominos be mirrored? (5 comments)
Can I take the number of Xs in the input as an extra input? (2 comments)
Holes and test cases
trichoplax‭ wrote over 1 year ago · edited over 1 year ago

Does code need to support inputs with holes? If so, here are some potential test cases for n=16:

Not prime:

XXXXX
X   X
X   X
X   X
XXXXX

 X
 XXXX
XX X
 XXXX
 XXX
  X
  
 X
 XXXXX
XX X
 XXXX
 XXX
 
 X
XXXXX
XX X
 XXXX
 XXX

Prime:

 XX
XX XX
XX X
 XXXX
 XXX

Not prime example decompositions:

11114
2   4
2   4
2   4
23333

 1
 1222
11 2
 3333
 444
  4
  
 1
 12222
11 3
 4433
 443
 
 1
11444
12 4
 2233
 233
WheatWizard‭ wrote over 1 year ago

The current definition of polyomino doesn't disallow holes. I'll try to work that explicitly into the text.

trichoplax‭ wrote over 1 year ago · edited over 1 year ago

Thanks for clarifying. Note that the current answer does not give correct output when the input has a hole, but it works for all the examples in the challenge, so it might be worth adding at least 1 test case with a hole.