學校有一個工友他負責開關走廊中的電燈泡。每個燈泡有他自己的開關。也就是說你按下某個燈泡的開關,燈泡就亮了。下一次你再按這個開關,這個燈泡就熄了。這個工友有個古怪的習慣,假如走廊有 n 個燈泡 (編號從 1 到 n),他會來回走上 n 趟。在第 i 趟開始走過去的時候,他會開關燈泡編號可以除盡 i 的燈泡,在回來的時候不做任何事。

現在你的任務就是要算出在走完 n 趟之後,最後一個電燈泡 (編號 n) 是亮著的還是暗著的。假設剛開始時所有的電燈都是暗著的。

Input

每個測試資料一行,包含一個整數 n ($n\leq{2^{32}-1}$),代表走廊共有多少個燈泡。n=0 代表輸入結束。

Output

如果最後一個燈泡是亮著的請輸出 yes,如果是暗著的請輸出 no。見 Sample Output。

Sample Input

3
4
6241
8191
0

Sample Output

no
yes
yes
no

有一個程式設計師住在一條街上,這條街上的房子都在路的同一邊且門牌號碼從1連續下來。有一天晚上他牽著他的狗出門散步,出門之後往左邊走,因為溜狗有點無聊,所以他順便把經過的房子的門牌號碼加起來。隔天晚上他又出門溜狗,但這一次他往右走並且也把經過的門牌號碼加起來。讓他很驚訝的是:這兩次的數字竟然一樣。

當然,這個巧合現象跟這條街共有幾間房子(n),以及他住在第幾間房子(k)有關係。請寫一個程式找出前 10 個滿足這樣條件的數對(k,n)。在Sample Output中有前2個這樣的數對。

閱讀全文 »

3 歲的小明喜歡玩他的方塊積木,他總是把方塊疊在一起形成高度不一的方塊堆。然後他說:這是一面牆。5 歲的姊姊小美聽到了就跟小明說:真正的牆高度應該要一樣才行。小明聽了覺得有道理於是決定要搬動一些方塊使所有方塊堆的高度一樣。如下圖。由於小明是個懶惰的小孩,他想要搬動最小數目的方塊以達成這個目的,你能幫助他嗎?

閱讀全文 »

Ugly Number 的定義為:該數之質因數必須為 2、3 或 5。

當然了,依照慣例,1 也算是 Ugly Number。

在此列舉一串數列:

1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15

這些就是前 11 個 Ugly Numbers。

請寫一個程式求出第 1500 個 Ugly Number。

閱讀全文 »

考慮以下的演算法:

  1. 輸入 n
  2. 印出 n
  3. 如果 n = 1 則結束
  4. 如果 n 是奇數 那麼 $n\leftarrow{3n+1}$
  5. 否則 $n\leftarrow{n/2}$
  6. 回到 2

例如輸入 22,得到的數列:22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

據推測此演算法對任何整數而言會終止 (當列印出 1 的時候)。雖然此演算法很簡單,但以上的推測是否真實卻無法知道。然而對所有的 $0 < n < 1,000,000$ 來說,以上的推測已經被驗證是正確的。

給一個輸入 $n$,透過以上的演算法我們可以得到一個數列 (1 作為結尾)。此數列的長度稱為 $n$cycle length。上面提到的例子,22 的 cycle length 為 16。

問題來了:對任 2 個整數 $i,j$ 我們想要知道介於 $i,j$ (包含 $i,j$) 之間的數所產生的數列中最大的 cycle length 是多少。

閱讀全文 »

在一般的時鐘上通常有兩根指針:時針、分針。這個題目是告訴你幾點幾分,請你的程式回應時針和分針之間的角度。請注意:所有的角度請回應最小的正角度。例如:9:00 是 90 度,不是 -90 度,也不是 270 度。

Input

輸入是一連串的時間,每個時間一行,以下列的格式出現:H:M

$1\leq{H}\leq{12}, 00\leq{M}\leq{59}$

如果時間是 0:00 代表輸入結束了。請注意:H 可能是 1 或 2 位數,M 則總是以 2 位數出現。(也就是你在一般電子錶上看到的模式。)

Output

請輸出對應輸入時間的時針和分針間的最小正角度。此角度應該介於 0 到 180 度。每個輸出單獨一行。每個輸出至小數點以下第三位。

Sample Input

12:00
9:00
8:10
0:00

Sample Output

0.000
90.000
175.000