問題
解法
求める解を とすると、
- ...
のように表せます。
より、
が成り立ちます。
したがって、
は
の約数です。
より、
です。
したがって、
、すなわち、
が成り立ちます。
以上より、以下を満たす最大の整数 を求めればよいです。
は
の約数である
ACしたコード
from math import sqrt N, M = map(int, input().split()) ans = max(M // i if M // i <= M / N else i for i in range(1, int(sqrt(M)) + 1) if M % i == 0 and i <= M / N) print(ans)