All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g2601_2700.s2652_sum_multiples.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g2601_2700.s2652_sum_multiples;

// #Easy #Array #Math #Number_Theory #2023_09_06_Time_1_ms_(99.87%)_Space_39.6_MB_(64.42%)

/**
 * 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:**
 *
 * *   1 <= n <= 103
**/
public class Solution {
    public int sumOfMultiples(int n) {
        return sumOfDivisible(n, 3)
                + sumOfDivisible(n, 5)
                + sumOfDivisible(n, 7)
                - (sumOfDivisible(n, 15) + sumOfDivisible(n, 35) + sumOfDivisible(n, 21))
                + sumOfDivisible(n, 105);
    }

    private int sumOfDivisible(int n, int value) {
        int high = (n / value) * value;
        int count = (high + value - value) / value;
        return (value + high) * count / 2;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy