23 lines
512 B
Plaintext
23 lines
512 B
Plaintext
func mdroot(n) {
|
||
var (mdr, persist) = (n, 0)
|
||
while (mdr >= 10) {
|
||
mdr = mdr.digits.prod
|
||
++persist
|
||
}
|
||
[mdr, persist]
|
||
}
|
||
|
||
say "Number: MDR MP\n====== === =="
|
||
[123321, 7739, 893, 899998].each{|n| "%6d: %3d %3d\n" \
|
||
.printf(n, mdroot(n)...) }
|
||
|
||
var counter = Hash()
|
||
|
||
Inf.times { |j|
|
||
counter{mdroot(j).first} := [] << j
|
||
break if counter.values.all {|v| v.len >= 5 }
|
||
}
|
||
|
||
say "\nMDR: [n0..n4]\n=== ========"
|
||
10.times {|i| "%3d: %s\n".printf(i, counter{i}.first(5)) }
|