• + 0 comments

    golang solution

    func bestDivisor(n int32) {
        
        largestBestDivisor := int32(-1)
        largestBestDivisorDigitSum := int32(-1)
        
        for i := int32(1); i <= n; i++ {
            if n%i == 0 {
                iDigitSum := digitSum(i)
                
                if largestBestDivisor == -1 || iDigitSum > largestBestDivisorDigitSum {
                    largestBestDivisor = i
                    largestBestDivisorDigitSum = iDigitSum
                }
            }
        }
        
        fmt.Print(largestBestDivisor)
    }
    
    
    func digitSum(n int32) int32 {
        result := int32(0)
        
        for n > 0 {
            result += n%10
            n /= 10
        }
        
        return result
    }