gt22

Untitled

May 11th, 2018
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.16 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.ArrayList;
  5. import java.util.Arrays;
  6. import java.util.List;
  7.  
  8. public class Divisors {
  9.  
  10.     public static void main(String[] args) throws IOException {
  11.         BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
  12.         String[] s = r.readLine().split(" ");
  13.         int I = Integer.parseInt(s[0]);
  14.         int J = Integer.parseInt(s[1]);
  15.         List[] divs = div(J);
  16.         double minTriv = Double.POSITIVE_INFINITY;
  17.         int min = -1;
  18.         for(int i = I; i <= J; i++) {
  19.             int sum = 0;
  20.             @SuppressWarnings("unchecked")
  21.             List<Integer> d = divs[i];
  22.             for(int di : d) {
  23.                 sum += di;
  24.             }
  25.             double triv = sum / i;
  26.             if(triv < minTriv) {
  27.                 minTriv = triv;
  28.                 min = i;
  29.             }
  30.         }
  31.         System.out.println(min);
  32.     }
  33.  
  34.  
  35.     @SuppressWarnings("unchecked")
  36.     private static List[] div(int j) {
  37.         List[] divisors = new List[j + 1];
  38.         for(int d = 1; d <= j; d++) {
  39.             int c = 2;
  40.             int mul;
  41.             while((mul = c * d) <= j) {
  42.                 if(divisors[mul] == null) {
  43.                     divisors[mul] = new ArrayList();
  44.                 }
  45.                 divisors[mul].add(d);
  46.                 c++;
  47.             }
  48.         }
  49.         return divisors;
  50.     }
  51.  
  52. }
Advertisement
Add Comment
Please, Sign In to add comment