**From New Scientist #2616, 11th August 2007**

A standard pack of playing cards has 52 cards and (counting 1 point for an ace, 2 for a 2, and so on up to 13 for a king) it is worth a total of 364 points. So, on Sunday 1 January one year I took a pack and noted that the number of days yet to come in the year equalled the number of points in the pack.

Then the following Sunday and every Sunday for the rest of the year I discarded one card and counted the points left in the remaining pack. So, finally, after doing this on Sunday 31 December, there were no points left and no days left, and once again the number of days yet to come equalled the number of points left in the pack.

In fact the point count and day count were equal every fortnight from January 1 (and on some other occasions). On all the remaining Sundays the point count was either a palindrome or a perfect square or a perfect cube.

The week after discarding the king of clubs, I discarded the king of spades, and the week after discarding the king of diamonds, I discarded the king of hearts.

On which four dates did I discard a 6?

[enigma1455]

### Like this:

Like Loading...

This Python program runs in 1.5s. It uses the

`yield from ...`

construct, so requires at least Python 3.3. I think it could be made to run quicker by folding the requirement for the pairs of kings to be discarded in adjacent weeks into the recursive solver, but it would make the code a little messier.Solution:The sixes were discarded on 2nd April, 7th May, 11th June and 19th November.There are sixteen possible sequences of discards which give the solution. The program above finds them all.

Here is my solution which is also recursive but steps forward two weeks at a time: