32 lines
697 B
Plaintext
32 lines
697 B
Plaintext
import extensions;
|
|
import system'routines;
|
|
import system'collections;
|
|
|
|
extension op
|
|
{
|
|
get DigitalRoot()
|
|
{
|
|
int additivepersistence := 0;
|
|
long num := self;
|
|
|
|
while (num > 9)
|
|
{
|
|
num := num.Printable.toArray().selectBy:(ch => ch.toInt() - 48).summarize(new LongInteger());
|
|
|
|
additivepersistence += 1
|
|
};
|
|
|
|
^ new Tuple<int,int>(additivepersistence, num.toInt())
|
|
}
|
|
}
|
|
|
|
public program()
|
|
{
|
|
new long[]::(627615l, 39390l, 588225l, 393900588225l).forEach:(num)
|
|
{
|
|
var t := num.DigitalRoot;
|
|
|
|
console.printLineFormatted("{0} has additive persistence {1} and digital root {2}", num, t.Item1, t.Item2)
|
|
}
|
|
}
|