RosettaCodeData/Task/Digital-root/PascalABC.NET/digital-root.pas

19 lines
468 B
ObjectPascal

##
function DigitalRoot(num: int64): (integer, integer);
begin
var additivepersistence := 0;
while num > 9 do
begin
num := num.ToString.ToCharArray.Sum(x -> x.ToDigit);
additivepersistence += 1;
end;
result := (additivepersistence, integer(num));
end;
var nums := |627615, 39390, 588225, 393900588225|;
foreach var num in nums do
begin
var t := DigitalRoot(num);
Writeln(num, ' has additive persistence ', t[0], ' and digital root ', t[1])
end;