LeetCode in Kotlin

2652. Sum Multiples

Easy

Given a positive integer n, find the sum of all integers in the range [1, n] inclusive that are divisible by 3, 5, or 7.

Return an integer denoting the sum of all numbers in the given range satisfying the constraint.

Example 1:

Input: n = 7

Output: 21

Explanation: Numbers in the range [1, 7] that are divisible by 3, 5, or 7 are 3, 5, 6, 7. The sum of these numbers is 21.

Example 2:

Input: n = 10

Output: 40

Explanation: Numbers in the range [1, 10] that are divisible by 3, 5, or 7 are 3, 5, 6, 7, 9, 10. The sum of these numbers is 40.

Example 3:

Input: n = 9

Output: 30

Explanation: Numbers in the range [1, 9] that are divisible by 3, 5, or 7 are 3, 5, 6, 7, 9. The sum of these numbers is 30.

Constraints:

Solution

class Solution {
    fun sumOfMultiples(n: Int): Int {
        fun sumOfDivisible(value: Int): Int {
            val high = n / value * value
            val count = (high + value - value) / value
            return (value + high) * count / 2
        }
        return sumOfDivisible(3) + sumOfDivisible(5) + sumOfDivisible(7) -
            (sumOfDivisible(15) + sumOfDivisible(35) + sumOfDivisible(21)) +
            sumOfDivisible(105)
    }
}