思路
- 模拟
代码
/*
1. 遍历每个值去判断
2. 溢出int,用long long
3. 注意乘法溢出
*/
#include <iostream>
#include <cmath>
using namespace std;
using LL = long long;
int main() {
int m, n;
cin >>m >> n;
bool tag1 = false;
for(int i = m; i <= n; i++){
int j = i - 1;
LL u = i*1ll*i*i;
LL v = j*1ll*j*j;
// LL v = (LL)j*j*j;
LL c = u - v;
LL C = sqrt(c);
if(C*C != c) continue;
LL a;
for(a = C-1; a > 0; a--){
LL b = a - 1;
if(a*a + b*b == C){
tag1 = true;
cout<<i<<" "<<a<<endl;
break;
}
}
}
if(!tag1) cout<<"No Solution"<<endl;
return 0;
}