12064. Представлення у вигляді добутку


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам задано натуральні числа \(N\) і \(M\).

Знайдіть найменше натуральне число \(X\), яке задовольняє обидві наведені нижче умови, або виведіть −1, якщо такого цілого числа немає.

  • \(X\) можна представити як добуток двох цілих чисел \(a\) і \(b\) від 1 до \(N\) включно. Тут \(a\) і \(b\) можуть бути однаковими.
  • \(X\) є щонайменше \(M\).

Обмеження

  • \(1≤N≤10^{12}\)
  • \(1≤M≤10^{12}\)
  • \(N\) і \(M\) є цілими числами.

Формат вхідних даних

Вхідний потік містить цілі числа \(N,M\).

Формат вихідних даних

У вихідний потік виведіть відповідь.

Приклад вхідних даних

5 7

Приклад вихідних даних

8

Перше, 7 не можна представити як добуток двох цілих чисел між ними 1 і 5.

по-друге, 8 можна представити як добуток двох цілих чисел між ними 1 і 5, наприклад 8 = 2 × 4 .

Таким чином, ви повинні вивести 8.

Приклад вхідних даних

2 5

Приклад вихідних даних

-1

Оскільки 1×1=1, 1×2=2, 2×1=2 і 2×2=4, лише 1, 2 і 4 можна представити як добуток двох цілих чисел від 1 до 2.

Таким чином, ви повинні вивести −1.

Приклад вхідних даних

100000 10000000000

Приклад вихідних даних

10000000000

Для \(a=b=100000\) (=\(10^5\) ), добуток \(a\) і \(b\) дорівнює 10000000000 (=\(10^{10}\) ), що є відповіддю.

Зауважте, що відповідь може не вписуватися в 32-розрядний цілий тип.


Коментарі

Ще немає коментарів.