mirror of
https://git.sb/baoshuo/OI-codes.git
synced 2024-11-10 06:18:48 +00:00
parent
49ddbf3558
commit
23271050c2
61
Luogu/P5596/P5596.cpp
Normal file
61
Luogu/P5596/P5596.cpp
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
#include <cmath>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using std::cin;
|
||||||
|
using std::cout;
|
||||||
|
const char endl = '\n';
|
||||||
|
|
||||||
|
long long a, b, d, m, ans;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
std::ios::sync_with_stdio(false);
|
||||||
|
|
||||||
|
cin >> a >> b;
|
||||||
|
|
||||||
|
d = a * a - b * 4;
|
||||||
|
|
||||||
|
if (d == 0) {
|
||||||
|
cout << "inf" << endl;
|
||||||
|
|
||||||
|
exit(0);
|
||||||
|
} else if (d < 0) {
|
||||||
|
d *= -1;
|
||||||
|
m = std::sqrt(d);
|
||||||
|
|
||||||
|
for (long long q = 1; q <= m; q++) {
|
||||||
|
if (d % q == 0) {
|
||||||
|
long long p = d / q;
|
||||||
|
|
||||||
|
long long x = p - q - 2 * a,
|
||||||
|
y = p + q;
|
||||||
|
|
||||||
|
if (x % 4 || y % 4) continue;
|
||||||
|
|
||||||
|
x /= 4, y /= 4;
|
||||||
|
|
||||||
|
if (x >= 0 && y >= x) ans++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else { // d > 0
|
||||||
|
m = std::sqrt(d);
|
||||||
|
|
||||||
|
for (long long q = 1; q <= m; q++) {
|
||||||
|
if (d % q == 0) {
|
||||||
|
long long p = d / q;
|
||||||
|
|
||||||
|
long long x = p + q - 2 * a,
|
||||||
|
y = p - q;
|
||||||
|
|
||||||
|
if (x % 4 || y % 4) continue;
|
||||||
|
|
||||||
|
x /= 4, y /= 4;
|
||||||
|
|
||||||
|
if (x >= 0 && y >= x) ans++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cout << ans << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user