2 条题解
-
0
数学题,分析如下:
设 ,。
由性质可得:
然后枚举 即可。
AC code:
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mp make_pair int main() { ll a; cin >> a; vector<pair<ll, ll>> res; if (a != 1) { ll a2 = a * a; for (ll d = 1; d * d <= a2; ++d) { if (a2 % d != 0) continue; ll e = a2 / d; if ((d + e) % 2 != 0) continue; ll b = (e - d) / 2, c = (e + d) / 2; if (b > 0) { res.pb(mp(b, c)); } } } sort(res.begin(), res.end(), [](const pair<ll, ll>& x, const pair<ll, ll>& y) { return x.first > y.first; }); for (int i = 0; i < res.size(); ++i) { cout << res[i].first << ' ' << res[i].second << endl; } return 0; }
信息
- ID
- 245
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 5
- 已通过
- 5
- 上传者