开关灯[2]
时间限制:1秒 内存限制:256M
【问题描述】
有一个叫做Mabu的人在大学的走廊里面反复开灯和关灯。每个灯泡都有他自己的开关,用来改变它的状态。如果一盏灯是关着的,可以通过这个开关来打开它,在按一次则会将它关上。
Mabu做了一件很奇特的事情:如果走廊里有 \(n\) 个灯泡,他就在走廊里来回走 \(n\) 次,在他走 \(i\) 次的时候,只按动可以被 \(i\) 整除(位置编号为 \(1\) 到 \(n\))位置上的开关。在他走回初始位置时,他不会按动任何开关。第 \(i\) 次走动被定义为走到走廊尽头(同时做着上述奇特的事情)。然后走回来(不会按开关)。
你的任务是确定最后一个灯泡的状态。它是开着的还是关着的。
【输入格式】
每一行将给出一个走廊里的灯泡总数 \(n\),\(n=0\) 表示输入结束,你的程序不应该处理这一行。注意:最初所有灯炮都是关着的。
【输出格式】
如果灯泡开着,输出“yes”;如果是关着,输出“no”。每行数据在单独一行上输出。
【输入输出样例】
Input
3
6241
8191
0
Output
no
yes
no
【数据限制】
\(100\%\) 的数据满足,\(1 ≤ n < 2^{31}\)。
【来源】
Mr.he**