23 lines
425 B
Text
23 lines
425 B
Text
func cast_out(base = 10, min = 1, max = (base**2 - 1)) {
|
|
|
|
var b9 = base-1
|
|
var ran = b9.range.grep {|n| n%b9 == (n*n % b9) }
|
|
|
|
var x = min//b9
|
|
var r = []
|
|
|
|
loop {
|
|
ran.each {|n|
|
|
var k = (b9*x + n)
|
|
return r if (k > max)
|
|
r << k if (k >= min)
|
|
}
|
|
++x
|
|
}
|
|
|
|
return r
|
|
}
|
|
|
|
say cast_out().join(' ')
|
|
say cast_out(16).join(' ')
|
|
say cast_out(17).join(' ')
|