Два из Трех Ограничение по времени: 1 секунда Огра...
創建於:2025年10月24日
使用 GPT-5 Thinking 回答 Chat01
創建於:2025年10月24日
使用 GPT-5 Thinking 回答 Chat01
Два из Трех
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Отличник Петя выписал на доску делители некоторого натурального числа п (все, кроме 1 и самого числа п.), их оказалось ровно 3. Хулиган Вася стёр одно из чисел. Восстановите удалённое число.
Формат входных данных
Две строки входных данных содержат два натуральных числа а (2 < a < 10") и b (a < b < 10°). Гарантируется непротиворечивость входных данных. Обратите внимание, что значения переменных в этой задаче могут превышать возможные значения 32-битной целочисленной переменной, поэтому в некоторых случаях необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#).
Формат выходных данных
Выведите одно натуральное число ответ на вопрос задачи. Гарантируется единственность ответа.
Система оценки
Решения, верно работающие при < 2500, получат не менее 20 баллов. Решения, верно работающие при < 30000, получат не менее 30 баллов. Решения, верно работающие при п < 10", получат не менее 54 баллов.
Замечание
Методом перебора, начиная с единицы, найдём число п. 16, которое имеет три «средних» делителя: 2, 4 и 8. Вася стёр самое большое из этих трёх чисел.
Ввод 2 4
Вывод 8
реализуй код в Python 3
python# Python 3 solution for "Два из Трех" # Given two of the three proper divisors (excluding 1 and n) of n # where n has exactly 5 divisors ⇒ n = p^4 (p is prime), # the three “middle” divisors are p, p^2, p^3. # From two of them (a < b), restore the third. import sys import math data = sys.stdin.read().strip().split() a = int(data[0]) b = int(data[1]) if a > b: a, b = b, a r = b // a # since both are powers of the same prime, b is divisible by a # If r is a perfect square, the pair is (p, p^3) ⇒ missing is p^2 = sqrt(a*b) if math.isqrt(r) ** 2 == r: ans = math.isqrt(a * b) # If a^2 == b, the pair is (p, p^2) ⇒ missing is p^3 = b^2 / a elif a * a == b: ans = (b * b) // a # Otherwise the pair is (p^2, p^3) ⇒ missing is p = a^2 / b else: ans = (a * a) // b print(ans)