Найдите наименьшее регулярное число, которое не меньше N

Обычные числа - это числа, которые равномерно делят степени 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, или сохранения массива всех возможных значений.

9
задан Community 23 May 2017 в 12:16
поделиться