[AtCoder] ABC 166 D – I hate Factorization

2020年12月14日

問題

方針

\( y = x^5 \) というグラフを考えると、発散するスピードが速いことが分かります。よって、\( A , B\) という値は、\( X \) に比べて非常に小さい値を取ることが想像できます。これは、\( y = (x + 1)^5 – x^5 \) というグラフを考えれば分かると思います。よって、全探索を行います。

コード

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
    ll X;
    cin >> X;
    set<ll> s;
    for (ll i = -1000; i <= 1000; i++) {
        for (ll j = -1000; j <= 1000; j++) {
            ll A = pow(i, 5);
            ll B = pow(j, 5);
            //if (A - B >= 1) s.insert(A - B);
            if (A - B == X) {
                cout << i << " " << j << "\n";
                return 0;
            }
        }
    }
    //cout << s.size() << "\n";
    return 0;
}