29 lines
616 B
Text
29 lines
616 B
Text
func smooth_generator(primes) {
|
|
|
|
var s = primes.len.of { [1] }
|
|
|
|
{
|
|
var n = s.map { .first }.min
|
|
{ |i|
|
|
s[i].shift if (s[i][0] == n)
|
|
s[i] << (n * primes[i])
|
|
} * primes.len
|
|
n
|
|
}
|
|
}
|
|
|
|
with (smooth_generator([2,3,5,7])) {|g|
|
|
say 50.of { g.run }.join(' ')
|
|
}
|
|
|
|
say "\nThe digit counts of humble numbers"
|
|
say '═'*35
|
|
|
|
with (smooth_generator([2,3,5,7])) {|g|
|
|
for (var(d=1,c=0); d <= 20; ++c) {
|
|
var n = g.run
|
|
n.len > d || next
|
|
say "#{'%10s'%c.commify} have #{'%2d'%d} digit#{[:s,''][d==1]}"
|
|
(c, d) = (0, n.len)
|
|
}
|
|
}
|