@bublov

Почему программа не работает?

Java 8.
У меня есть следующий код:
import java.util.*;

public class Main {
    public static void main(String[] args){

       Scanner in = new Scanner(System.in);
       int a = in.nextInt();
       int b = in.nextInt();
       while(!(1<=a && a<=b && b<=Math.pow(10, 6) && b-a<=3000)){
            System.out.println("Вы ввели неккоректное значение");
            a = in.nextInt();
            b = in.nextInt();
       }
       int[] masOfNumbers = new int[b-a+1];
       int[] masOfResults = new int[b-a+1];
       List<Integer> dividers = new ArrayList<Integer>();
       for(int i=a; i<=b; i++){
           masOfNumbers[i-a]=i;
           if(masOfNumbers[i-1]%i==0){
               dividers.add(masOfNumbers[i-1]/i);
               masOfResults[i-1]=dividers.size();
           }
       }
       OptionalInt max = Arrays.stream(masOfResults).max();
       int result = Arrays.asList(masOfResults).indexOf(max)+1;
       System.out.println(result);
    }
}

В чем ее суть: на ввод идет 2 числа, первое меньше второго, программе нужно найти от первого до второго числа такое, чтобы у него было наибольшее количество делителей. Она должна выводить это число. Но у меня она почему-то выводит всегда 0. Что я делаю не так?
В цикле while я задаю рамки значений a и b.
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы