``````
unit U_MacGregor;
This program may be used or modified for any non-commercial purpose
so long as this original notice remains in place.
All other rights are reserved
}

{A simple puzzle }``````
`{Mr. MacGregor always planted his cabbage patch in a square configuration. This `
`summer he decided to plant extra for his rabbit friends and ended up planting an extra `
`47 cabbages. How big was his patch last year and this year?`
` `
`This puzzle can be solved without a computer if we examine the equation`
` `
`                    Thisyear2 - Lastyear2 = 47}`
``{Hint:   A little knowledge of factoring  [like.  x2-y2=(x-y)*(x+y)] and prime numbers``
``````(like 47 is prime) will be helpful in solving the equation.{

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, jpeg, ExtCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
StatusBar1: TStatusBar;
Image1: TImage;
procedure SolveitBtnClick(Sender: TObject);
end;

var Form1: TForm1;

implementation
{\$R *.DFM}

{************** SolveitBtnClick ****************}
procedure TForm1.SolveitBtnClick(Sender: TObject);
var last,this:integer;
begin
memo2.clear;
for last:=1 to 200 do
for this:=last+1 to 201 do
if this*this-last*last=47 then
with memo2, lines do
begin
add(format('MacGregor''s cabbage patch was %d x %d cabbages last year '
+'(%.0n altogether) and %d x %d (%.0n cabbages) this year, 47 more.',
[last,last,0.0+last*last,this,this,0.0+this*this]));
add('Here is the Delphi source code that solves the puzzle');