//解答为本人所写,若有纰漏欢迎指正
4.1 略
4.2 (a) 根据提示(寻求形如(a,b,c)=(xz,yz,z^2)的解)PS:c>=b>=a>=1
①(2*35,3*35,35*35)=(70,105,1225)
②(2*72,4*72,72*72)=(144,288,5184)
③略(二娃比较懒)
④a^3 + b^3 = c^3 ==> x^3 * z^3 + y^3 * z^3 = z^4
==>x^3 + y^3 = z
(O(∩_∩)O哈哈~ 只需要保证 x <= y && x,y都是大于等于1的整数就可以保证 c>=b>=a>=1咯)
(b) 比较简单,略过
(c) 这个直接编个程序来跑一跑,代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
typedef long long ll;
const int INF=0x3f3f3f3f;
using namespace std;
struct Node{
int a,b;
Node()=default;
Node(long long c,long long d){
a=c,b=d;
}
};
bool check(long long a,long long b){
long long gcd=__gcd(a,b);
bool flag=1;
for(long long i=2;i*i<=gcd;i++){
if(gcd%(i*i)==0){
flag=0;
break;
}
}
long long c_2=a*a*a+b*b*b;
long long sc_2=sqrt(c_2);
if(c_2!=sc_2*sc_2)flag=0;
return flag;
}
int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
#endif
//ios::sync_with_stdio(false);
const long long maxn=100005;
vectorans;
for(long long b=1;b<=maxn;b++){
if(ans.size()>=4)break;
for(long long a=1;a<=b;a++){
if(check(a,b)){
ans.push_back(Node(a,b));
}
}
}
for(int i=0;i
return 0;
}
实在抱歉啊,二娃不知道怎么把字体弄成彩色0.0
运行如下:
(d) ∵ a=b
∴ a^3 + b^3 = 2 * a^3 = c^2
∴ sqrt(2 * a) * a = c
∴ a = 2 * k^2 (k ∈ N +)
∴ a = b = 2 * k^2,c = 4 * k^3
当且仅当 k = 1 时,(a,b,c)为本源解
(e) 稍微修改一下程序即可得解
谢谢阅读。