C++ ①暴力 ②令a=b,当b<=x且b^2>x时,符合条件(不知道不满足时其他也都不满足怎么证明)
#include <iostream>
using namespace std;
int main() {
int x;
cin >> x;
bool f=false;
for (int b=1; b<=x; b++) {
for (int a=b; a<=x; a+=b) {
if (a*b>x && a/b<x) {
cout << a << ' ' << b;
f=true; break;
}
}
if (f) break;
}
if (!f) cout << -1;
}
// 64 位输出请用 printf("%lld")
② b = a * n 即 a = b / n;a * b = b^2 / x > n;a/b = 1/n < x 即 1/x < n;令 n = 1,则只需满足 b^2 > x 即可。
#include <iostream>
using namespace std;
int main() {
int x;
cin >> x;
int b=1;
while (b<=x) {
if (b*b>x) break;
b++;
}
if (b<=x && b*b>x) cout << b << ' ' << b;
else cout << -1;
}
// 64 位输出请用 printf("%lld")



京公网安备 11010502036488号