27 lines
479 B
ObjectPascal
27 lines
479 B
ObjectPascal
function IsGiugaNumber(N: integer): boolean;
|
|
var IA: TIntegerDynArray;
|
|
var I,V: integer;
|
|
begin
|
|
Result:=False;
|
|
if IsPrime(N) then exit;
|
|
GetPrimeFactors(N,IA);
|
|
for I:=0 to High(IA) do
|
|
begin
|
|
V:=N div IA[I] - 1;
|
|
if (V mod IA[I])<>0 then exit;
|
|
end;
|
|
Result:=True;
|
|
end;
|
|
|
|
procedure ShowGiugaNumbers(Memo: TMemo);
|
|
var I,Cnt: integer;
|
|
begin
|
|
Cnt:=0;
|
|
for I:=4 to High(integer) do
|
|
if IsGiugaNumber(I) then
|
|
begin
|
|
Inc(Cnt);
|
|
Memo.Lines.Add(IntToStr(I));
|
|
if Cnt>=4 then break;
|
|
end;
|
|
end;
|