Divisible and Non-divisible Sums Difference

easy math divisibility modulo

Problem

Given positive integers n and m, look at every integer in the range [1, n]. Let num1 be the sum of those not divisible by m, and num2 the sum of those divisible by m. Return num1 − num2.

Inputn = 10, m = 3
Output19
Not divisible by 3: [1,2,4,5,7,8,10] sum = 37. Divisible by 3: [3,6,9] sum = 18. Answer = 37 − 18 = 19.

def differenceOfSums(n, m):
    num1 = 0   # sum of numbers NOT divisible by m
    num2 = 0   # sum of numbers divisible by m
    for i in range(1, n + 1):
        if i % m == 0:
            num2 += i
        else:
            num1 += i
    return num1 - num2
function differenceOfSums(n, m) {
  let num1 = 0; // sum of numbers NOT divisible by m
  let num2 = 0; // sum of numbers divisible by m
  for (let i = 1; i <= n; i++) {
    if (i % m === 0) {
      num2 += i;
    } else {
      num1 += i;
    }
  }
  return num1 - num2;
}
int differenceOfSums(int n, int m) {
    int num1 = 0; // sum of numbers NOT divisible by m
    int num2 = 0; // sum of numbers divisible by m
    for (int i = 1; i <= n; i++) {
        if (i % m == 0) {
            num2 += i;
        } else {
            num1 += i;
        }
    }
    return num1 - num2;
}
int differenceOfSums(int n, int m) {
    int num1 = 0; // sum of numbers NOT divisible by m
    int num2 = 0; // sum of numbers divisible by m
    for (int i = 1; i <= n; i++) {
        if (i % m == 0) {
            num2 += i;
        } else {
            num1 += i;
        }
    }
    return num1 - num2;
}
Time: O(n) Space: O(1)