uses math; {need this to get access to the Power function}

{$R *.DFM}

procedure TForm1.Check32BtnClick(Sender: TObject);
{We're checking X^4-X^2 values so we can uses X values
 up to 4th root of maxinteger}
var i,stop,errcount:integer;
begin
{power returns 4th root of highest possible value for i,(high(i))}
{trunc converts it from a real nbr to the next lower integer}
stop:=trunc(power(high(i),0.25));
  errcount:=0;
For i := 2 to stop do
if (i*i*(i*i-1)) mod 12 >0 then inc(errcount); {just count any errors}

showmessage('Done - all integers between 2 and '
+inttostr(stop) +' checked, '+inttostr(errcount)
              +' were not multiples of 12');
end;

procedure TForm1.Check64BtnClick(Sender: TObject);
{Same thing as above, but with long integers}
var i,stop:int64;
    errcount:integer;
begin
stop:=trunc(power(high(i),0.25));
  i:=2;
  errcount:=0;
{DO loop control variable only operates on 32 bit integer values}
{So we'll use a WHILE loop}
While i<= stop do
begin
if (i*i*(i*i-1)) mod 12 >0 then inc(errcount); {just count any errors}
inc(i);
end;
  showmessage('Done - all integers between 2 and '
+inttostr(stop) +' checked, '+inttostr(errcount)
              +' were not multiples of 12');
end;

end.