Я пытаюсь найти наименьшее положительное число, которое делится поровну на все числа от 1 до 20. Нам дано, что 2520 - это наименьшее число, которое можно разделить на каждое из чисел от 1 до 10 без любой остаток. Мой find () находит число, начиная с 2520, которое делится на все числа от 1 до 20, но по какой-то причине возвращает 2520. Я не могу найти, что не так с моей функцией find ()?
public class Solution {
public ArrayList<Integer> list = new ArrayList<Integer>();
// creating a list of integers from 1 to 20
public ArrayList<Integer> addtolist() {
for (int i = 1; i <= 20; i++) {
list.add(i);
}
return list;
}
// finds the smallest positive number that is evenly divisible by all
of the numbers from 1 to 20
public int find() {
int num = 2520;
while(true) {
for(int i: list) {
if(num % i == 0) {
return num;
}
else {
num = num + 1;
}
}
}
}
public static void main(String[] args) {
Solution sol = new Solution();
sol.addtolist();
System.out.println(sol.find());//2520
}
}