# coding: utf-8 class Integer def perfect? return false if self < 6 or self.odd? or self.to_s !~ /(6|8)$/ return false if self != 6 and digital_root != 1 k_perfect?(2) end end