The A1227 golf that just ended was nominally about printing for each number from 1 to 99 the amount of different ways that the number could be represented as the sum of consecutive positive integers. So for example since the number 9 == 2+3+4 == 4+5, the correct answer for the number 9 would be 3. I say nominally, since there was actually a link to the correspoding entry in the On-Line Encyclopedia of Integer Sequences. Amongst other things, the entry told that another way to generate this sequence is by determining the number of odd divisors of the number (including 1). Unfortunately I missed this bit of information on the first reading, and only figured this out after drawing rectangles on graph paper for a couple of hours. I don't really understand why the problem statement had to be given in a non-optimal form, with a link to the better formulation.
Once the problem had been reduced to this form, the solution is
pretty obvious, with just a couple of ways to optimize it for length
(as evidenced by the fact that 12 of 20 participants were in the
39-41 character range). My solution was 40 characters:
-l print~~grep$_%2>$'%$_,//..99for 1..99
Loop for the numbers from 1 to 99. For each of these numbers, first do a match against the empty regular expression, which stores the number into $' (so that it can be accessed from inner scopes even after $_ has been aliased to something else). After that, do a grep for numbers from 1 to 99, finding all numbers that are both divisible by two, and which are divisors of the number we stored in $`. Grep returns a list of the items that satisfied the condition, which we then need to force to scalar context (done here with ~~) to find out how many items the list contains.
A nice little golf.