| 第六題 尤拉四平方和恆等式
問題描述
尤拉四平方和恆等式(Euler's Four Square Identity)說明,如果兩個整數𝑎、𝑏 都能表示為四個整數平方數的和,則這兩個整數的乘積𝑎 ∗ 𝑏也能表示為四個整數平方數的和。 亦即 𝑎=𝑥12 +𝑥22 +𝑥32 +𝑥42 𝑏=y12 +y22 +y32 +y42 則 𝑎∗𝑏=z12 +z22 +z32 +z42
舉一例如下: a = 30 = 1*1 + 2*2 + 3*3 + 4*4 b = 4 = 1*1 + 1*1 + 1*1 + 1*1 則 a*b = 120 = 0*0 + 2*2 + 4*4 + 10*10 或 a*b = 120 = 2*2 + 4*4 + 6*6 + 8*8
輸入說明
分別輸入兩組數字代表構成 a 和 b 的四個平方數,每組四個範圍為 0~5 的整數;數字間以空格隔開。
第一列輸入 a 的四個平方數第二列輸入 b 的四個平方數
輸出說明
輸出 a,b 和 a*b 的四個平方數組合。(a*b 的表示法不只一種,列出所有的組合,其中,四個平方數皆為非負整數) 第一列輸出:a = 四個平方數的和 = 列出哪四個平方數的和 第二列輸出:b = 四個平方數的和 = 列出哪四個平方數的和 第三列以後每列輸出一種 a*b 的四個平方數之和: a*b = 四個平方數的和 = 列出哪四個平方數的和 以輸入以下二列為例: 1 2 3 4 1 1 1 1 則輸出時, 第一列輸出:a = 30 = 1*1 + 2*2 + 3*3 + 4*4 第二列輸出:b = 4 = 1*1 + 1*1 + 1*1 + 1*1
第三列以後每列輸出一種 a*b,如下: a*b = 120 = 0*0 + 2*2 + 4*4 + 10*10 a*b = 120 = 2*2 + 4*4 + 6*6 + 8*8
注意:第三列以後,同一列中所列出的四個平方數要由小到大排序輸出。不同列間的輸出順序,先比第一個數字,若相同則比第二個數字以此類推,每列間由小到大依序輸出。例如上例的第三列與第四列,比較四個平方數的第一個數字,因 0<2,所以輸出 第三列為 a*b = 120 = 0*0 + 2*2 + 4*4 + 10*10
第四行則為 a*b = 120 = 2*2 + 4*4 + 6*6 + 8*8
範例
輸入 |
輸出 |
1 2 3 4 1 1 1 1 |
a = 30 = 1*1 + 2*2 + 3*3 + 4*4 b = 4 = 1*1 + 1*1 + 1*1 + 1*1 a*b = 120 = 0*0 + 2*2 + 4*4 + 10*10 a*b = 120 = 2*2 + 4*4 + 6*6 + 8*8 |
3 2 0 1 1 1 2 2 |
a = 14 = 3*3 + 2*2 + 0*0 + 1*1 b = 10 = 1*1 + 1*1 + 2*2 + 2*2 a*b = 140 = 0*0 + 2*2 + 6*6 + 10*10 a*b = 140 = 1*1 + 3*3 + 3*3 + 11*11 a*b = 140 = 1*1 + 3*3 + 7*7 + 9*9 a*b = 140 = 2*2 + 6*6 + 6*6 + 8*8 a*b = 140 = 3*3 + 5*5 + 5*5 + 9*9 |
|