package q1390 import "slices" func sfd(n int) int { if n < 6 { return 0 } buf := [6]int{1, n} divisors := buf[:2] nn := n for i := 2; i*i <= nn; i++ { for nn%i == 0 { nn /= i if !slices.Contains(divisors, i) { divisors = append(divisors, i) } if !slices.Contains(divisors, nn) { divisors = append(divisors, nn) } if !slices.Contains(divisors, n/nn) { divisors = append(divisors, n/nn) } if len(divisors) > 4 { return 0 } } } if len(divisors) == 4 { return divisors[0] + divisors[1] + divisors[2] + divisors[3] } return 0 } func sumFourDivisors(nums []int) int { sum := 0 for _, n := range nums { sum += sfd(n) } return sum } var _ = sumFourDivisors