Advertisement
JagadeeshUndavalli

Between two sets

Nov 2nd, 2022 (edited)
2,057
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 2.53 KB | Source Code | 0 0
  1. import java.io.*;
  2. import java.math.*;
  3. import java.security.*;
  4. import java.text.*;
  5. import java.util.*;
  6. import java.util.concurrent.*;
  7. import java.util.function.*;
  8. import java.util.regex.*;
  9. import java.util.stream.*;
  10. import static java.util.stream.Collectors.joining;
  11. import static java.util.stream.Collectors.toList;
  12.  
  13. class Result {
  14.     static int gcd(int x, int y){
  15.         if(y==0){
  16.             return x;
  17.         }
  18.         return gcd(y,x%y);
  19.     }
  20.     static int lcm(int x, int y){
  21.         return (x*y)/(gcd(x,y));
  22.     }
  23.     public static int getTotalX(List<Integer> a, List<Integer> b) {
  24.         int lcmVal=a.get(0);
  25.         int gcdVal=b.get(0);
  26.         for(int i=0; i<a.size(); i++){
  27.             lcmVal = lcm(lcmVal, a.get(i));
  28.         }
  29.         for(int i=0; i<b.size(); i++){
  30.             gcdVal = gcd(gcdVal, b.get(i));
  31.         }
  32.         List<Integer> lst = new ArrayList<>();
  33.         for(int j=1; j<((int)Math.sqrt(gcdVal))+1;j++){
  34.             if(gcdVal%j==0 && (gcdVal/j)*j==gcdVal){
  35.                 if(j!=gcdVal/j){
  36.                     lst.add(j);
  37.                     lst.add(gcdVal/j);
  38.                 }else{
  39.                     lst.add(j);
  40.                 }
  41.             }
  42.         }
  43.         int count=0;
  44.         for(Integer k:lst){
  45.             // System.out.println(k);
  46.             if(k>=lcmVal && k%lcmVal==0){
  47.                 // System.out.println(k);
  48.                 count+=1;
  49.             }
  50.         }
  51.         return count;
  52.        
  53.     }
  54.  
  55. }
  56.  
  57. public class Solution {
  58.     public static void main(String[] args) throws IOException {
  59.         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
  60.         BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
  61.  
  62.         String[] firstMultipleInput = bufferedReader.readLine().replaceAll("\\s+$", "").split(" ");
  63.  
  64.         int n = Integer.parseInt(firstMultipleInput[0]);
  65.  
  66.         int m = Integer.parseInt(firstMultipleInput[1]);
  67.  
  68.         List<Integer> arr = Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" "))
  69.             .map(Integer::parseInt)
  70.             .collect(toList());
  71.  
  72.         List<Integer> brr = Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" "))
  73.             .map(Integer::parseInt)
  74.             .collect(toList());
  75.  
  76.         int total = Result.getTotalX(arr, brr);
  77.  
  78.         bufferedWriter.write(String.valueOf(total));
  79.         bufferedWriter.newLine();
  80.  
  81.         bufferedReader.close();
  82.         bufferedWriter.close();
  83.     }
  84. }
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement