l048: 尤拉四平方和恆等式(110-6)
標籤 : 萊恩盃
通過比率 : 1人/1人 ( 100% ) [非即時]
評分方式:
Tolerant

最近更新 : 2022-10-30 02:26

內容

尤拉四平方和恆等式(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



輸入說明

分別輸入兩組數字代表構成 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
1 2 3 4
1 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
範例輸入 #2
3 2 0 1
1 1 2 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
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (25%): 1.0s , <1K
公開 測資點#1 (25%): 1.0s , <1K
公開 測資點#2 (25%): 1.0s , <1K
公開 測資點#3 (25%): 1.0s , <1K
提示 :
標籤:
萊恩盃
出處:
南台科技大學資工系 110-06 [管理者: zero(管理員) ]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」