Author            Method                  Lines       Size        Time
----------------  ----------------------  ----------  ----------  --------
Auke Reitsma      Precomputed :-)                13    6604          0.007
Rom Bemis         Precomputed mod 7 filter       39    6930          0.008
Mark Stephen      Trotter's permutation          90    7662          0.326
Rhys Wong         Smart search w/o longs         95    7266          0.686
Dave Dunfield     Recursive permutation          44    7144          1.344
Tony Postmayer    Precomputed permutation        54    7496          1.452
Ray Gardner       Recursive permutation          48    7046          1.669
Martin Richek     Permutation                    47    7042          1.821
Dave Dunfield     Permutation                    53    7104          1.884
Larry Hudson      Recursive permutation          62    7210          1.952
Robin Forster     Smart search                   59    7669          2.014
Bob Stout         Smart search                   55    7591          3.057
Shamim Islam      Smart search                  106    7322          3.947
Wayne Halsdorf    Smart search                   87    7527          4.555
Bill Greganti     Search (using longs)           53    7236        560.540
Stephan Galt      Search (using doubles)         76   13136       1278.982
Fraser Campbell   Kinda smart search             44    7770       1566.104

Notes:

1.  Except where one contributor posted multiple solutions using different
    algorithms, only the latest/greatest code from each is shown.
2.  All programs were modified to execute 1000 iterations using conditional
    compilation. Initial conditions were reset for each iteration.
3.  Test machine was 486DX/50 w/ preloaded cache.
4.  All programs compiled in tiny model using Watcom C 9.5 with maximum
    optimization.
5.  All programs reworked to a consistent coding style for source lines
    comparison.
6.  Timings for  Greganti & Galt entries are single timing * 1000.
7.  Source lines are C code lines only - blank lines and comments are not
    counted. Reformatting, as noted in Note 4 above, forced 1 statement/line.
8.  A major problem was how to time multiple iterations of recursive
    functions. The solution I used, suggested by Dave Dunfield, was to use
    global variables and setjmp()/longjmp() to break out of nested recursive
    calls.
9.  Dave Dunfield also provided a permutation program which used a recursive
    main(), but which was not tested do the the complexity and intrusiveness
    of modifications to permit timing 1000 iterations.
10. Thad Smith provided a solution which uses the C preprocessor to generate
    a C file and headers files to directly calculate the answer.