2016-12-05 23:44:36 +01:00
|
|
|
func is_even_perfect(n) {
|
|
|
|
|
|
|
|
|
|
var square = (8*n + 1)
|
2019-09-12 10:33:56 -07:00
|
|
|
square.is_square || return false
|
2016-12-05 23:44:36 +01:00
|
|
|
|
2019-09-12 10:33:56 -07:00
|
|
|
var t = ((square.isqrt + 1) / 2)
|
|
|
|
|
t.is_smooth(2) || return false
|
2016-12-05 23:44:36 +01:00
|
|
|
|
2019-09-12 10:33:56 -07:00
|
|
|
t-1 -> is_prime
|
2016-12-05 23:44:36 +01:00
|
|
|
}
|
|
|
|
|
|
2019-09-12 10:33:56 -07:00
|
|
|
for n in (1..10000) {
|
|
|
|
|
say n if is_even_perfect(n)
|
2016-12-05 23:44:36 +01:00
|
|
|
}
|