Это мини-вызов из учебника Java. Следующий код можно сделать более эффективным (путем сокращения числа итераций внутреннего цикла, вероятно, с помощью инструкции continue
).Сокращение числа итераций внутреннего цикла в Java для эффективности
/*
Use nested loops to find factors of numbers
between 2 and 100.
In the program, the outer loop runs i from 2 through 100. The inner loop successively tests
all numbers from 2 up to i, printing those that evenly divide i.
*/
class FindFactors {
public static void main (String args[]) {
for (int i = 2; i <= 100; i++) {
System.out.print("Factors of " + i + ": ");
for (int j = 2; j < i; j++)
if ((i%j) == 0) System.out.print(j + " ");
System.out.println();
}
}
}
Однако я стараюсь «упростить», просто добавляет больше шагов. Есть идеи?
чек, чтобы увидеть, если J меньше, что я/2 во все дни вы никогда не будете иметь фактор, превышающий половину i –
, вы также можете вычислить его противоположный коэффициент, а затем вы можете сделать предел квадратом i –