48 lines
870 B
ObjectPascal
48 lines
870 B
ObjectPascal
program SquareButNotCube;
|
|
var
|
|
sqN,
|
|
sqDelta,
|
|
SqNum,
|
|
|
|
cbN,
|
|
cbDelta1,
|
|
cbDelta2,
|
|
CbNum,
|
|
|
|
CountSqNotCb,
|
|
CountSqAndCb : NativeUint;
|
|
|
|
begin
|
|
CountSqNotCb := 0;
|
|
CountSqAndCb := 0;
|
|
SqNum := 0;
|
|
CbNum := 0;
|
|
cbN := 0;
|
|
sqN := 0;
|
|
sqDelta := 1;
|
|
cbDelta1 := 0;
|
|
cbDelta2 := 1;
|
|
repeat
|
|
inc(sqN);
|
|
inc(sqNum,sqDelta);
|
|
inc(sqDelta,2);
|
|
IF sqNum>cbNum then
|
|
Begin
|
|
inc(cbN);
|
|
cbNum := cbNum+cbDelta2;
|
|
inc(cbDelta1,6);// 0,6,12,18...
|
|
inc(cbDelta2,cbDelta1);//1,7,19,35...
|
|
end;
|
|
IF sqNum <> cbNUm then
|
|
Begin
|
|
writeln(sqNum :25);
|
|
inc(CountSqNotCb);
|
|
end
|
|
else
|
|
Begin
|
|
writeln(sqNum:25,sqN:10,'*',sqN,' = ',cbN,'*',cbN,'*',cbN);
|
|
inc(CountSqANDCb);
|
|
end;
|
|
until CountSqNotCb >= 30;//sqrt(High(NativeUint));
|
|
writeln(CountSqANDCb,' where numbers are square and cube ');
|
|
end.
|