Код почему-то работает с введенными числами 1, 2, 3. При значении чисел больше не работает. Вероятно есть и еще ошибки, так как у валидатора и другие претензии. Буду благодарен за любую конструктивную критику.
package com.javarush.task.task07.task0713;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Играем в Jолушку
*/
public class Solution {
public static void main(String[] args) throws Exception {
ArrayList<Integer> listM = new ArrayList<>();
ArrayList<Integer> list3 = new ArrayList<>();
ArrayList<Integer> list2 = new ArrayList<>();
ArrayList<Integer> listOver = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 20; i++)
listM.add(Integer.parseInt(reader.readLine()));
for (Integer i: listM){
if (listM.get(i)%3==0)
list3.add(listM.get(i));
}
for (Integer i : listM) {
if (listM.get(i) % 2 == 0)
list2.add(listM.get(i)); }
for (Integer i: listM)
if (listM.get(i)%2>0 && listM.get(i)%3>0)
listOver.add(listM.get(i));
System.out.println("переданный список");
printList(listM);
System.out.println("на три делятся");
printList(list3);
System.out.println("на два делятся");
printList(list2);
System.out.println("не делятся ни на два, ни на три");
printList(listOver);
}
public static void printList (List < Integer > list) {
for (Integer i : list)
System.out.println(list.get(i));
}
}