2652. Sum Multiples
Description
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
Solutions
Solution 1: Enumeration
Thinking
Sum integers in \([1,n]\) divisible by \(3\), \(5\), or \(7\). \(n \le 1000\) allows scanning every \(x\) and testing those moduli.
We directly enumerate every number \(x\) in \([1,..n]\), and if \(x\) is divisible by \(3\), \(5\), and \(7\), we add \(x\) to the answer.
After the enumeration, we return the answer.
The time complexity is \(O(n)\), where \(n\) is the given integer. The space complexity is \(O(1)\).
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Solution 2: Mathematics (Inclusion-Exclusion Principle)
Thinking
Solution 1 scans \(n\) linearly. Multiples of \(x\) form an arithmetic series with a closed sum; inclusion-exclusion removes overlaps in \(O(1)\).
The value is \(f(3)+f(5)+f(7)-f(15)-f(21)-f(35)+f(105)\).
We define a function \(f(x)\) to represent the sum of numbers in \([1,..n]\) that are divisible by \(x\). There are \(m = \left\lfloor \frac{n}{x} \right\rfloor\) numbers that are divisible by \(x\), which are \(x\), \(2x\), \(3x\), \(\cdots\), \(mx\), forming an arithmetic sequence with the first term \(x\), the last term \(mx\), and the number of terms \(m\). Therefore, \(f(x) = \frac{(x + mx) \times m}{2}\).
According to the inclusion-exclusion principle, we can obtain the answer as:
The time complexity is \(O(1)\), and the space complexity is \(O(1)\).
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 | |
Solution 3
Thinking
The same inclusion-exclusion formula as Solution 2, rewritten in Rust; the algorithm and constants do not change.
1 2 3 4 5 6 7 8 9 10 | |