數論 - UVA 10110 - Light, more light

UVa 10110 - Light, more light

問題

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

* 中文翻譯:Lucky 貓

Input

每個測試資料一行,包含一個整數n( n <= 232-1),代表走廊共有多少個燈泡。n=0代表輸入結束。

Output

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

Sample Input

3
4
6241
8191
0


Sample Output
no
yes
yes 
no

解法

 github

看因數個數, 奇數個會亮, 偶數個會是暗的. 
因數可以變成成對整數相乘,  
平方數會有一個是同一個整數乘積, 所以是奇數. 
其他非平方數有偶數個因數.





留言

熱門文章