次方程式の解の公式を用いれば と解が求められますが,小数型で扱うため誤差が生じる恐れがあります.
代わりに解と係数の関係を用います.方程式の解を とすると以下が成り立ちます.
つ目の式については, を つの正の約数の積で表しているため,候補となる を素因数分解や約数列挙などを用いて求めることができます.
よって, の約数 を全探索し, が成り立つものが存在するかを調べれば良いです.
計算量は の最大値を として です.
xxxxxxxxxx
A,B = map(int,input().split())
for x in range(1,10**6+1):
if B%x==0 and x+(B//x)==A:
print('Yes')
exit()
print('No')