uva10110light,more light因子个数
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85482#problem/K
题意:一个走廊上有多少个灯,一个人就来回几趟按每个灯的按钮,每次只按趟数的倍数的灯的按钮,输出最后一个灯是开还是关。
思路:最后一个灯被按的次数是它因子的个数,而n的因子都是成对的,只有当n有开平方整数根时,有一对因子重合,因子为奇数个,灯是开着的,不能开平方时,则因子是偶数个,灯是关着的。
#include<iostream> #include<math.h> using namespace std; int main() { double n; cin>>n; while(n!=0) { double n1=sqrt(n); int n2=n1; if(n2==n1)cout<<"yes"<<endl; else cout<<"no"<<endl; cin>>n; } }