**A** combinatorics Le Monde mathematical puzzle:

In the set {1,…,12}, numbers adjacent to i are called friends of i. How many distinct subsets of size 5 can be chosen under the constraint that each number in the subset has at least a friend with him?

**I**n a brute force approach, I tried a quintuple loop to check all possible cases:

case=0 for (a in 1:(12-4)) for (b in (a+1):(12-3)) for (c in (b+1):(12-2)) for (d in (c+1):(12-1)) for (e in (d+1):12) case=case+((b-a<2)&(min(c-b,d-c)<2) &(min(d-c,e-d)<2)&(e-d<2))

which returns 64 possible cases. Note that the second and last loop are useless since b=a+1 and e=d+1, necessarily. And c is either (b+1) or (d-1), which means 2 choices for c, except when e=a+4. This all adds up to

A related R question: is there a generic way of programming a sequence of embedded loops like the one above without listing all of the loops one by one?