31 lines
842 B
Plaintext
31 lines
842 B
Plaintext
$ include "seed7_05.s7i";
|
|
include "bigint.s7i";
|
|
|
|
const func bigInteger: digitalRoot (in var bigInteger: num, in bigInteger: base, inout bigInteger: persistence) is func
|
|
result
|
|
var bigInteger: sum is 0_;
|
|
begin
|
|
persistence := 0_;
|
|
while num >= base do
|
|
sum := 0_;
|
|
while num > 0_ do
|
|
sum +:= num rem base;
|
|
num := num div base;
|
|
end while;
|
|
num := sum;
|
|
incr(persistence);
|
|
end while;
|
|
end func;
|
|
|
|
const proc: main is func
|
|
local
|
|
var bigInteger: num is 0_;
|
|
var bigInteger: root is 0_;
|
|
var bigInteger: persistence is 0_;
|
|
begin
|
|
for num range [] (627615_, 39390_, 588225_, 393900588225_) do
|
|
root := digitalRoot(num, 10_, persistence);
|
|
writeln(num <& " has additive persistence " <& persistence <& " and digital root of " <& root);
|
|
end for;
|
|
end func;
|