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