RosettaCodeData/Task/Perfect-numbers/Sidef/perfect-numbers-2.sidef

15 lines
244 B
Text
Raw Permalink Normal View History

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
}