二次方程式

二次方程式の正数解を探す

答えが整数にならない場合は-1が返ってくる

rの値はいい感じに調節してください

long long f(long long a, long long b, long long c) {
    // ax^2 + bx + c = 0の解
    long long l = 0, r = 600000001; // ありうる答えの最大値
    while (r - l > 1) {
        long long mid = (l + r) / 2;
        if (a * mid * mid + b * mid + c <= 0)l = mid;
        else r = mid;
    }
    if (a * l * l + b * l + c == 0)return l;
    return -1;
}