Divisible and Non-divisible Sums Difference
EasyUpdated: Jul 31, 2025
Practice on:
Problem
You are given positive integers n and m.
Define two integers as follows:
num1: The sum of all integers in the range[1, n](both inclusive) that are not divisible bym.num2: The sum of all integers in the range[1, n](both inclusive) that are divisible bym.
Return the integer num1 - num2.
Examples
Example 1
Input: n = 10, m = 3
Output: 19
Explanation: In the given example:
- Integers in the range [1, 10] that are not divisible by 3 are [1,2,4,5,7,8,10], num1 is the sum of those integers = 37.
- Integers in the range [1, 10] that are divisible by 3 are [3,6,9], num2 is the sum of those integers = 18.
We return 37 - 18 = 19 as the answer.
Example 2
Input: n = 5, m = 6
Output: 15
Explanation: In the given example:
- Integers in the range [1, 5] that are not divisible by 6 are [1,2,3,4,5], num1 is the sum of those integers = 15.
- Integers in the range [1, 5] that are divisible by 6 are [], num2 is the sum of those integers = 0.
We return 15 - 0 = 15 as the answer.
Example 3
Input: n = 5, m = 1
Output: -15
Explanation: In the given example:
- Integers in the range [1, 5] that are not divisible by 1 are [], num1 is the sum of those integers = 0.
- Integers in the range [1, 5] that are divisible by 1 are [1,2,3,4,5], num2 is the sum of those integers = 15.
We return 0 - 15 = -15 as the answer.
Constraints
1 <= n, m <= 1000
Solution
Method 1 - Using Maths
We need to calculate two sums:
num1: The sum of integers from 1 tonthat are not divisible bym.num2: The sum of integers from 1 tonthat are divisible bym. Finally, return the value ofnum1 - num2.
We can use the formula for the sum of an arithmetic series to compute the total sums efficiently.
- Sum of the first
knatural numbers is . - For
num2, the sum of integers divisible bymcan be expressed as the sum of a sequence , where .- Formula: .
Here are the steps we can take:
- Compute the total sum of integers ( [1, n] ).
- Compute
num2(sum of integers divisible bymusing the sequence formula). - Calculate
num1(subtractnum2from the total sum). - Return
num1 - num2.
Code
Java
class Solution {
public int differenceOfSums(int n, int m) {
// Total sum of numbers from 1 to n
int totalSum = (n * (n + 1)) / 2;
// Sum of numbers divisible by m
int k = n / m;
int divSum = m * (k * (k + 1)) / 2;
// num1 - num2
int ans = totalSum - 2 * divSum;
return ans;
}
}
Python
class Solution:
def differenceOfSums(self, n: int, m: int) -> int:
# Total sum of numbers from 1 to n
total_sum = (n * (n + 1)) // 2
# Sum of numbers divisible by m
k = n // m
div_sum = m * (k * (k + 1)) // 2
# num1 - num2
ans = total_sum - 2 * div_sum
return ans
Complexity
- ⏰ Time complexity:
O(1)as computing total sum, divisible sum, and handling basic arithmetic - are allO(1)operations. - 🧺 Space complexity:
O(1)as no additional space other than variables.