1234567891011121314151617 |
- func checkPerfectNumber(num int) bool {
- if num <= 1 {
- return false
- }
- sum, sqrt := 1, int(math.Sqrt(float64(num)))
- if sqrt*sqrt == num {
- sum += sqrt
- sqrt--
- }
- for i := 2; i <= sqrt; i++ {
- if num%i == 0 {
- sum += i
- sum += num / i
- }
- }
- return sum == num
- }
|