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;
    }
}

 

posted @ 2016-04-29 11:48  哲贤  阅读(87)  评论(0编辑  收藏  举报