HackerRank Between Two Sets Problem Solution

 


HackerRank Between Two Sets Problem Solution in C

#include <stdio.h>

long long gcd(long long a, long long b);
long long lcm(long long a, long long b);

int main()
{
    long long a[10], b[10], n, m, i, lcm_a, gcd_b, between = 0;

    scanf("%lld %lld\n", &n, &m);
    for (i = 0; i < n; ++i)
        scanf("%lld", &a[i]);
    for (i = 0; i < m; ++i)
        scanf("%lld", &b[i]);

    lcm_a = a[0];
    for (i = 1; i < n; ++i)
        lcm_a = lcm(lcm_a, a[i]);

    gcd_b = b[0];
    for (i = 1; i < m; ++i)
        gcd_b = gcd(gcd_b, b[i]);

    if (gcd_b % lcm_a == 0)
        for (i = lcm_a; i <= gcd_b; i += lcm_a)
            if (gcd_b % i == 0) ++between;

    printf("%lld", between);
    return 0;
}

long long gcd(long long a, long long b)
{
    long long t;
    while (b)
    {
        t = b;
        b = a % b;
        a = t;
    }
    return a;
}

long long lcm(long long a, long long b)
{
    return a / gcd(a,b) * b;
}

HackerRank Between Two Sets Problem Solution in JavaScript

process.stdin.resume();
process.stdin.setEncoding('ascii');

var input_stdin = "";
var input_stdin_array = "";
var input_currentline = 0;

process.stdin.on('data', function (data) {
    input_stdin += data;
});

process.stdin.on('end', function () {
    input_stdin_array = input_stdin.split("\n");
    main();    
});

function readLine() {
    return input_stdin_array[input_currentline++];
}

/////////////// ignore above this line ////////////////////

function main() {
    var n_temp = readLine().split(' ');
    var n = parseInt(n_temp[0]);
    var m = parseInt(n_temp[1]);
    a = readLine().split(' ');
    a = a.map(Number);
    b = readLine().split(' ');
    b = b.map(Number);
    var lcm = getLCM(a);
    var gcd = getGCD(b);
    var count = 0;
    for(var i=lcm;i<=gcd;i+=lcm){
        if(gcd%i===0){count++}
    }
    console.log(count);
    
}
function LCM(a,b){
    return a*b/GCD(a,b)
}
function getLCM(a){
    var result = a[0];
    for(var i=1;i<a.length;i++){
        result = LCM(result,a[i]);
    }
    return result;
}
function GCD(a,b){
    var temp;
    while(b>0){
        temp = b;
        b = a%b;
        a = temp;
    }
    return a;
}
function getGCD(a){
   var result = a[0];
    for(var i=1;i<a.length;i++){
        result = GCD(result,a[i]);
    }
    return result;
}

HackerRank Between Two Sets Problem Solution in Python

#!/bin/python3

import sys


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

a.sort()
b.sort()
lower_b = a[n - 1];
upper_b = b[0] + 1;
l = []
for i in range(upper_b - lower_b):
    num = i + lower_b
    flag = 1;
    for j in range(n):
        if(num % a[j] != 0):
            flag = 0
            break
    for j in range(m):
        if(b[j] % num != 0):
            flag = 0
            break
    if(flag == 1):
        l.append(num)
    
print(len(l))
        

0 Comments