题目
五个不同自然数
a<b<c<d<e
a
<
b
<
c
<
d
<
e
满足
a2+b2+c2+d2+e2=abcde
a
2
+
b
2
+
c
2
+
d
2
+
e
2
=
a
b
c
d
e
(式子①)。给出1个数N,求e <= N的全部的解。
解按照a,b,c,d,e依次排序。如果无解,输出No Solution。
题解
感觉很棘手。尝试能否通过一组解来构造另一组解(最小的一组解不大)。
a2+b2+c2+d2+e2=abcde⇒b2+c2+d2+e2=abcde−a2
a
2
+
b
2
+
c
2
+
d
2
+
e
2
=
a
b
c
d
e
⇒
b
2
+
c
2
+
d
2
+
e
2
=
a
b
c
d
e
−
a
2
。
尝试替换一个数,将
a
a
替换为。
a′2+b2+c2+d2+e2=a′bcde
a
′
2
+
b
2
+
c
2
+
d
2
+
e
2
=
a
′
b
c
d
e
于是有
a′2+abcde−a2=a′bcde⇒
a
′
2
+
a
b
c
d
e
−
a
2
=
a
′
b
c
d
e
⇒
a′2−a2=bcde(a′−a)⇒(a′+a)(a′−a)=bcde(a′−a)⇒
a
′
2
−
a
2
=
b
c
d
e
(
a
′
−
a
)
⇒
(
a
′
+
a
)
(
a
′
−
a
)
=
b
c
d
e
(
a
′
−
a
)
⇒
a′+a=bcde⇒a′=bcde−a
a
′
+
a
=
b
c
d
e
⇒
a
′
=
b
c
d
e
−
a
所以,若a,b,c,d,e是一组解,则
bcde-a,b,c,d,e/a,acde-b,c,d,e…也是满足式子①。
然后就可以根据某一组a,b,c,d,e暴力构造出所有答案。
我也不知道为什么跑这么快。
还有个问题。必须满足
a<b<c<d<e
a
<
b
<
c
<
d
<
e
,所以输出的时候只输出满足
a<b<c<d<e
a
<
b
<
c
<
d
<
e
的。
不要在暴力过程中将不满足
a<b<c<d<e
a
<
b
<
c
<
d
<
e
的删去,因为通过这样的a,b,c,d,e,仍然可以构造出满足
a<b<c<d<e
a
<
b
<
c
<
d
<
e
的a,b,c,d,e。
所有的a,b,c,d,e用个哈希判一下。