Problem · Array
Count Subarrays With Sum Divisible by K
Learn this problemProblem statement
Given an integer array arr and a positive integer k, return the number of non-empty contiguous subarrays whose element sum is divisible by k.
A subarray is a contiguous sequence of elements from arr. A sum s is divisible by k when s % k = 0.
Function
countDivisibleSubarrays(arr: int[], k: int) → longExamples
Example 1
arr = [2,3,1]k = 2return = 3The qualifying subarrays are [2], [3,1], and [2,3,1], with sums 2, 4, and 6.
Example 2
arr = [1,2,3,4]k = 1return = 10Every integer sum is divisible by 1, so all 4 × 5 / 2 = 10 non-empty subarrays qualify.
Example 3
arr = [-1,2,9]k = 2return = 2The qualifying subarrays are [2], whose sum is 2, and [-1,2,9], whose sum is 10.
Constraints
1 ≤ arr.length ≤ 10^41 ≤ k ≤ 10^4-10^9 ≤ arr[i] ≤ 10^9