23 lines
562 B
Text
23 lines
562 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
|
|
}
|
|
}
|
|
|
|
for p in (primes(2,29)) {
|
|
var g = smooth_generator(p.primes)
|
|
say ("First 25 #{'%2d'%p}-smooth numbers: ", 25.of { g.run }.join(' '))
|
|
}
|
|
|
|
say ''
|
|
|
|
for p in (primes(3,29)) {
|
|
var g = smooth_generator(p.primes)
|
|
say ("3,000th through 3,002nd #{'%2d'%p}-smooth numbers: ", 3002.of { g.run }.last(3).join(' '))
|
|
}
|