/*
* 解题思路:
* 题意是: 假如有n盏灯,这个人从走廊的起点走到终点n次,在从起点到终点这段路程时(反向不管),
* 第 i 次就切换灯光序列号能被 i 除尽开关,问当最后一次走完后,最后一盏灯是开的还是关的
* ps: 开始时所有的等都是关的
* 解题: 判断是否是完全平方数 + 使用longlong!!
* 开始的时候使用判断因子的方法做会超时,此题要用O(1 )的时复才能过
*/
#include <math.h> #include <stdio.h> int main( ) { int n,flag; while( scanf("%d",&n) && n ) { flag = sqrt( n ); if( flag * flag == n ) printf("yes\n"); else printf("no\n"); } return 0; }
原文:http://blog.csdn.net/u011886588/article/details/19416801