[AtCoder] ARC 108 A – Sum and Product

2020年12月12日

問題

方針

\( xy = P\) となるような \( x, y \) を全探索します。このとき、探索は \( x \) についてだけでよく、\( 1 \leq x \leq \sqrt{P} \) の範囲で十分です。

コード

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main() {
    ll S, P;
    cin >> S >> P;
    for (ll i = 1; i * i <= P; i++) {
        if (P % i == 0) {
            if (i + P / i == S) {
                cout << "Yes\n";
                return 0;
            }
        }
    }
    cout << "No\n";
    return 0;
}