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