RosettaCodeData/Task/Kaprekar-numbers/PascalABC.NET/kaprekar-numbers.pas
2024-10-16 18:07:41 -07:00

15 lines
386 B
ObjectPascal

##
function iskaprekar(n: int64): boolean;
begin
if n = 1 then result := true;
var n2 := (n * n).tostring;
for var i := 2 to n2.length do
begin
var a := StrToInt64(n2[:i]);
var b := StrToInt64(n2[i:]);
if (b > 0) and (a + b = n) then result := true;
end;
end;
(1..10_000).Where(x -> iskaprekar(x)).Println;
(1..1_000_000).Where(x -> iskaprekar(x)).Count.Println;