Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment