gt22 icon

Untitled

gt22 | PRO | 05/11/18 05:15:53 PM UTC | 0 ⭐ | 651 👁️ | Never ⏰ | []
Java |

1.16 KB

|

None

|

0 👍

/

0 👎

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
public class Divisors {
 
    public static void main(String[] args) throws IOException {
        BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
        String[] s = r.readLine().split(" ");
        int I = Integer.parseInt(s[0]);
        int J = Integer.parseInt(s[1]);
        List[] divs = div(J);
        double minTriv = Double.POSITIVE_INFINITY;
        int min = -1;
        for(int i = I; i <= J; i++) {
            int sum = 0;
            @SuppressWarnings("unchecked")
            List<Integer> d = divs[i];
            for(int di : d) {
                sum += di;
            }
            double triv = sum / i;
            if(triv < minTriv) {
                minTriv = triv;
                min = i;
            }
        }
        System.out.println(min);
    }
 
 
    @SuppressWarnings("unchecked")
    private static List[] div(int j) {
        List[] divisors = new List[j + 1];
        for(int d = 1; d <= j; d++) {
            int c = 2;
            int mul;
            while((mul = c * d) <= j) {
                if(divisors[mul] == null) {
                    divisors[mul] = new ArrayList();
                }
                divisors[mul].add(d);
                c++;
            }
        }
        return divisors;
    }
 
}

Comments