2010年7月29日 星期四

10019 - Funny Encryption Method

一位來自墨西哥蒙特瑞技術研究學院(ITESM Campus Monterrey)的學生發表他新發明的數值加密演算法,這個方法的步驟如下:

Steps : Example

1) 假設令N = M = 265為欲加密的數字

2) 把N視為十進位數值,令X1=265(十進制)

3) 把X1由十進制轉為二進制,故X1=100001001(二進制)

4) 針對以二進制表示的X1計算共有幾個1,X1=100001001共有3個1,即令B1=3

5) 把N視為十六進位數值,令X2=265(十六進制)

6) 把X2由十六進制轉為二進制,故X2=1001100101(二進制)

7) 針對以二進制表示的X2計算共有幾個1,X2=1001100101共有5個1,即令B2=5

8) 最後的編碼為 M xor (b1*b2) M xor (3*5) = 262

這位學生在計算組識(Computational Organization)這門課被當掉了,所以他請求校方在ACM的試題上出一題計算共有幾個位元1的題目,好讓他能順利發表他的加密演算法。

Task :
你必須寫一個程式能讀入一個整數,然後輸出該整數的b1, b2值

The Input

第一列為一數值N,表示共有幾組測試資料,接下來的N列(0<N<=1000)分別為一數值M(0<M<=9999, 十進制),該數即為欲加密的數值。

The Output

你必須輸出N列,每一列依序輸出b1與b2,以空白字元隔開。

Sample Input

3
265
111
1234

Sample Output

3 5
6 3
5 5


沒有留言:

張貼留言