Я хочу разложить число на произведение наибольшего квадрата в этом числе и некоторого другого числа, но я застрял в какой-то момент.Буду очень признателен за некоторые предложения.Это то, что я сделал до сих пор:
Я беру число на входе, разлагаю его на простые числа и помещаю последовательность простых чисел в ArrayList.Числа сортируются, в некотором смысле, таким образом, числа в последовательности увеличиваются.
Например,
996 is 2 2 3 83
1000 is 2 2 2 5 5 5
100000 is 2 2 2 2 2 5 5 5 5 5
Моя идея теперь состоит в том, чтобы подсчитать количество вхождений каждого элемента в последовательности, так что если число вхождений делится на два, то это квадрат.
Таким образом, я могу получить другую последовательность, где самый правый элемент, делимый на два, является наибольшим квадратом.
Какой самый эффективный способ подсчета событий в ArrayList
?Или есть лучший способ найти самую большую площадь?