Обычные числа - это числа, которые равномерно делят степени 60. Например, 60 2 = 3600 = 48 × 75, поэтому 48 и 75 являются делителями числа степень 60. Таким образом, они также являются обычными числами.
Это расширение округления до следующей степени двойки .
У меня есть целое число N , которое может содержать большие простые множители, и я хочу округлить его до числа, состоящего только из маленьких простых множителей (2, 3 и 5)
Примеры:
f (18) == 18 == 2 1 * 3 2
f (19) == 20 == 2 2 * 5 1
f (257) == 270 == 2 1 * 3 3 * 5 1
Какой эффективный способ найти наименьшее число, удовлетворяющее этому требованию?
Используемые значения могут быть большими, поэтому я хотел бы избежать перечисления всех обычных чисел, начинающихся с 1, или сохранения массива всех возможных значений.