二次方程式
二次方程式の正数解を探す
答えが整数にならない場合は-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;
}