引言
题目链接:https://www.luogu.com.cn/problem/P9231
思路
由 \(x = y^2 - z^2\) 可得 \(x = (y + z)(y - z)\)
由于 (y + z) 和 (y - z) 的奇偶性相同。
-
当其为奇数时,可以令其中一个为 1,另一个为 x 满足条件
-
当其为偶数时,相乘结果一定是 4 的倍数
所以只需要判断 [l,r] 中奇数和 4 的倍数的数量即是答案。
代码
#include <bits/stdc++.h>
int main() {
int l,r;
std::cin >> l >> r;
int odd = (r + 1) / 2 - l / 2;
int even4 = r / 4 - (l - 1) / 4;
std::cout << odd + even4 << '\n';
return 0;
}
标签:std,奇数,int,平方差,当其为,倍数
From: https://www.cnblogs.com/NachoNeko/p/18018476