Divisible Sum Pairs | HackerRank Solution

Hello coders, today we are going to solve Divisible Sum Pairs HackerRank Solution which is a Part of HackerRank Algorithms Series.

Divisible Sum Pairs

Task

Given an array of integers and a positive integer k, determine the number of (i, j) pairs where i < j and ar[i] + ar[j] is divisible by k.

Example

ar = [1, 2, 3, 4, 5, 6]
k = 5
Three pairs meet the criteria: [1, 4], [2, 3], and [4, 6].

Function Description

Complete the divisibleSumPairs function in the editor below.

divisibleSumPairs has the following parameter(s):

  • int n: the length of array ar 
  • int ar[n]: an array of integers
  • int k: the integer divisor

Returns
– int: the number of pairs

Input Format

The first line contains 2 space-separated integers, n and k.
The second line contains n space-separated integers, each a value of arr[i].

Constraints

  • 2 <= n <= 100
  • 1 <= k <= 100
  • 1 <= ar[i] <= 100

Sample Input

STDIN           Function
-----           --------
6 3             n = 6, k = 3
1 3 2 6 1 2     ar = [1, 3, 2, 6, 1, 2]

Sample Output

5

Explanation

Here are the 5 valid pairs when k = 3:

  • (0, 2) = ar[0] + ar[2] = 1 + 2 = 3
  • (0, 5) = ar[0] + ar[5] = 1 + 2 = 3
  • (1, 3) = ar[1] + ar[3] = 3 + 6 = 9
  • (2, 4) = ar[2] + ar[4] = 2 + 1 = 3
  • (4, 5) = ar[4] + ar[5] = 1 + 2 = 3

Solution – Divisible Sum Pairs

C++

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <unordered_map>

using namespace std;


int main(){
    int n;
    int k;
    int count = 0;
    cin >> n >> k;
    vector<int> a(n);
    for(int a_i = 0;a_i < n;a_i++){
       cin >> a[a_i];
    }
    
    for(int i =0 ; i < n -1 ; i++){
        for(int j=i+1 ; j < n ; j++){
            if( (a[i]+a[j])%k ==0){
                count++;
            }
        }
    }
    
    cout << count;
    return 0;
}

Python

import sys


n,k = input().strip().split(' ')
n,k = [int(n),int(k)]
a = [int(a_temp) for a_temp in input().strip().split(' ')]

result = 0
for i in range(n-1):
    for j in range(i+1, n):
        if not ((a[i] + a[j]) % k):
            result += 1
print(result)

Java

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

    public static void main(String[] args) {
         int cnt=0;
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int k = in.nextInt();
        int a[] = new int[n];
        for(int a_i=0; a_i < n; a_i++){
            a[a_i] = in.nextInt();
        }
        for(int a_i=0; a_i < n-1; a_i++){
          for(int a_j=a_i+1; a_j< n; a_j++){
           if( (a[a_i]+a[a_j])%k==0)
               cnt++;
               
        } 
        }
        System.out.println(cnt);
    }
}

Disclaimer: The above Problem (Divisible Sum Pairs) is generated by Hacker Rank but the Solution is Provided by CodingBroz. This tutorial is only for Educational and Learning Purpose.

Leave a Comment

Your email address will not be published. Required fields are marked *