507.perfect-number.go 274 B

1234567891011121314151617
  1. func checkPerfectNumber(num int) bool {
  2. if num <= 1 {
  3. return false
  4. }
  5. sum, sqrt := 1, int(math.Sqrt(float64(num)))
  6. if sqrt*sqrt == num {
  7. sum += sqrt
  8. sqrt--
  9. }
  10. for i := 2; i <= sqrt; i++ {
  11. if num%i == 0 {
  12. sum += i
  13. sum += num / i
  14. }
  15. }
  16. return sum == num
  17. }